靜態型別:表示式在編譯時型別是已知的,它是變數宣告時和表示式生成的型別;
動態型別:表達是表示式在記憶體中的型別;
如果表示式不是指標或引用,則它的靜態型別和動態型別永遠一樣。
專案/*person的靜態型別是person,它的動態型別可能是student,teacher...*/
string job=person.
job(
)
普通函式
虛函式純虛函式
基類定義
void f()
virture void f()
virture void f()=0
子類定義
void f()
virture void f()
void f() override
virture void f()
void f() override
呼叫時機
編譯時執行時
執行時呼叫物件
靜態型別
動態型別
動態型別
是否可定義物件√×
×
c 類成員函式
c 的兩大特色是多型和模板。其中多型是通過繼承和虛函式來實現的,其中虛函式是通過每個物件裡面的虛表來實現的。如果這個物件的類有虛函式,那麼這個類就有一張虛表,存的是每個虛函式的入口位址,而這個類的每個物件,都會有乙個4位元組的指標,指向這張虛表,這個就是虛指標。上面一段話很多人都知道,但是如果問普通...
c 類成員函式
類成員函式是類的乙個成員,它可以操作類的任意物件,可以訪問物件中的所有成員。定義類box,使用成員函式來訪問類的成員,而不是直接訪問這些類的成員 class box class box double box getvolume void 在這裡,需要強調一點,在 運算子之前必須使用類名。呼叫成員函式...
C 類成員函式的儲存方式 C 類成員
對於類的大小,我們發現類內成員函式並不存在於類的儲存空間。這引發了我們的思考,類中的函式成員儲存在什麼地方?資料成員每個物件會有乙份,函式成員會不會也是這樣呢?include using namespace std class time private int hour int minute int...