C 程式設計2 兼談物件模型

2021-09-23 22:37:47 字數 1219 閱讀 4338

勿在浮沙築高台

正規、大器的程式設計素養,繼續**更多技術

泛型程式設計和物件導向程式設計是兩條不同的技術路線

傳統版本的stl:

整個標準庫是泛型程式設計 而非 物件導向

繼承和多型用的不多

1.轉換函式:

型別轉換:a/b

c++說你不用寫返回型別,名稱裡面已經寫了,轉換,不需要引數

const:不應該改變

轉換是隱式的?

有沒有寫全域性的函式+?

左為整數或浮點數,右為fraction

不存在因此編譯器再找fraction能否轉換為double或int

不需要寫成:double d=4+double(f)???

轉換的不需要是內建型別

將這種東西轉換為別的東西,轉換函式

單實參非explict建構函式:

two parameter one argument(只要乙個實參就夠了,給兩個實參也可以)

explict可以出現在建構函式前面

編譯器想辦法找能不能讓這個語句通過!

能不能把4轉為fraction

利用建構函式將4變為4/1

fraction d2=f+4 注意!

可以把別的東西轉換為這種東西!

編譯器會想,該怎麼辦?!?!?!  +號這個地方

此時,全域性的+還可以用麼?

標準庫的例子:

操作符過載,boolean值???

C 物件模型 2

史列因 我剛看了你寫的 深度探索c 物件模型 1 感覺很不錯。不過我有乙個建議 你說 誰知第一章便如此的難以消化,已經反覆讀了3遍,還是有些夾生 是很自然的。第一章是乙個總覽,如果你能全看懂,後面的就沒什麼看的必要了。第一章的內容後面都有詳細介紹,開始只要有個大概印象就可以了。這本書中很多內容都是前...

小然談程式設計 2

開場白 這已經是連續的第二十個零點了,第二十個思維停滯的時刻。我一直在想怎樣寫今天的這個問題,卻苦於無法下筆,無從說起,推遲到了現在。因為說明這個題實在太大,太難了。二十個零點過去了,我才決定拿起筆來,嘗試著寫出來,因為它真的很重要。同時,我要感謝開水加冰,他在我寫本文的時候,給了不少非常可貴的意見...

C 物件模型之記憶體布局(2)

多重繼承 繼承關係大於2,至少有父類,子類,孫子類三代關係。使用vs2017檢視物件記憶體布局如下 class c size 20 0 base class b 0 base class a 0 4 a1 8 a2 12 b1 16 c1 c vftable c meta 0 0 c a1 1 a ...