《VC 深入講解》第一章第二章讀書筆記

2021-08-28 15:32:54 字數 2313 閱讀 9840

《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 操作,能實現組合語言的大部分功能,可以直接對硬體進行操作。生成目標 質量高...