《vc++深入講解》 孫鑫 電子工業出版社。書的第一版是2023年的,我看的是2023年的修訂版。書中介紹的mfc架構,現在被廣泛認為已經過時了,但前幾章對一些概念為何引入講得比較透徹,是一本不錯的有點基礎的菜鳥的入門書籍。
《vc++深入講解》.png
第一章
名詞解釋:
【sdk】software development kit,軟體開發包
【控制代碼】在windows程式中有各種資源(視窗、圖示、游標等),系統在建立這些資源時會為它們分配記憶體,並返回標識這些資源的標識號,即控制代碼(handle)。
(hwnd)視窗控制代碼
(hcursor)游標控制代碼
(hbrush)畫刷控制代碼
訊息佇列:
每個windows程式對應乙個訊息佇列,由windows系統建立。系統會將滑鼠動作、鍵盤動作等訊息放到對應視窗的訊息佇列中,而應用程式通過不斷迴圈,從訊息佇列中取出訊息,進行相應。
windows訊息分「進隊訊息」和「不進隊訊息」,不進隊訊息在系統呼叫串列埠的過程中直接傳送給視窗。
**部分:
用vs會因為不相容報錯,則,右鍵專案——>屬性——>配置屬性——>常規——>字符集:使用多位元組字符集。
第二章
class expamle
example( int x, int y) // 建構函式的過載
~example() // 析構函式
};
繼承:
構造子類的物件的時候,會先構造父類的物件,因此,要求建構函式的呼叫相一致。當子類中不含引數,而父類中含引數時,傳遞引數的例子:
class fish : public animal
};
多重繼承
class b: pubic a1, public a2
虛函式
子類與父類中如果有函式重名,則呼叫父類函式,因為子類與父類的結構是:
父與子.png
但如果父類中的是虛函式,則呼叫子類的。
用一句話概括就是;在基類函式的前面加上virtual關鍵字,在派生類中重寫該函式,執行時將會根據物件的實際型別呼叫相應的函式。如果物件型別是派生類就呼叫派生類的函式,如果物件型別是基類,就呼叫基類的函式。
純虛函式
例子:
class animal
函式的覆蓋、隱藏和過載的區別:
【過載】發生在同一類中,函式名相同,引數不同;
【覆蓋】基類函式為虛函式,發生覆蓋的兩個函式分別位於派生類和基類中,函式名稱和引數列表必須相同;
【隱藏】發生在派生類和基類之間,不屬於覆蓋的情況。
7.引用:
例子:
// 執行完後,a和b的值都變成c
// 相當於b是a的小名
int a = 5;
int &b = a;
int c = 3;
b = c;
// 更普遍的用法,提高**可讀性。
#include void change(int& a, int& b) // 交換a和b的取值,有趣的演算法。
void main()
其他變數命名規則(微軟公司建立的windous命名約定,匈牙利表示法):
匈牙利變數命名規則.png
vc++ 的設計習慣與程式編譯鏈結的原理與過程
在標頭檔案中包含類定義以及類成員函式的宣告;
在原始檔中包含類成員函式的實現。
解決重複包含都檔案的方法:
// 在標頭檔案開頭加上這句話:
vc++ 程式編譯鏈結的原理與過程.png
第一章,第二章總結
主要是一些概念的記憶和理解。比較重點的 軟體 程式 資料 文件 三個維度 build run,moment period,code component 注意 code snapshot memory dump都是run moment code code snapshot 變數的狀態 memory d...
Practical Vim 第一章 第二章
本質上講,我們的工作是重複性的.凡是可以簡化重複性操作的方式,都會成倍地節省我們的時間.vim 對重複性操作進行了優化.它之所以能高效地重複,是因為它會記錄我們最近的操作,讓我們用一次按鍵就能重複上次的修改.這個看似簡單的命令是 vim 中的瑞士軍刀.修改是改變文件內文字的任意操作,分為兩類 它可以...
C語言 第一章第二章
第一章 初識c語言 1.優缺點。優點 強大的控制結構 因為它是當前流行程式語言中最貼近組合語言的,所以它在微調控制上更出色,即能更有效地使用記憶體 快速 這是由c語言的特點決定的,c語言允許直接訪問實體地址,能進行位 bit 操作,能實現組合語言的大部分功能,可以直接對硬體進行操作。生成目標 質量高...