1.多型:在基類(父類)的函式前加上virtual關鍵字,在派生類(子類)中重寫該函式,呼叫同樣的語句有不同的表現形態。
2.this指標指向物件的首位址(但它不屬於物件的一部分),非靜態成員函式預設含引數 this,即指向該成員函式所作用的物件,靜態成員函式不作用於具體物件,所以非靜態成員函式沒有this指標
靜態成員函式靜態成員變數
靜態成員變數只有乙份,被所有同類物件共享,需要在類外進行初始化
靜態成員函式不具體作用於某個物件,所以靜態成員函式內部不能訪問非靜態成員變數,也不能呼叫非靜態成員函式(函式也不含隱藏的this指標)
拷貝建構函式
1.拷貝建構函式的呼叫時機
1)乙個物件去初始化另乙個物件(兩種初始化方式賦值和括號);
2)函式的引數是乙個類的物件時
3)函式的返回值是乙個類的物件時(用返回的物件去建立乙個匿名物件,函式的返回值就是這個匿名物件),如果用匿名對
象去初始化乙個物件m,相當於把匿名物件轉化成有名物件,只有初始化乙個物件m時才會轉,負責也會析構掉
2.深拷貝淺拷貝
深拷貝與淺拷貝的區別就在於深拷貝會在堆記憶體中另外申請空間來儲存資料,從而也就解決了指標懸掛的問題。簡而言之,當資料成員中有指標時,必須要用深拷貝。
C 常見問題
1.預處理 預處理的主要作用就是對資源進行等價替換,最常見的預處理有 檔案包含 include 條件編譯 if,ifndef,ifdef,endif,undef 布局控制 pragma 巨集替換等 define 等。1.1 標頭檔案中放什麼?標頭檔案一般用於類的定義 extern變數和函式的宣告。由...
C 常見問題
問題描述 解決方式 無法解析的外部符號 public cdecl minidl operator operator void 0operator minidl qeaa xz 該符號在函式 public cdecl minidl denseop denseop void 0denseop minid...
c 常見問題
編譯器總是根據型別來呼叫類成員函式。但是乙個派生類的指標可以安全地轉化為乙個基類的指標。這樣刪除乙個基類的指標的時候,c 不管這個指標指向乙個基類物件還是乙個派生類的對 象,調刪除線格式用的都是基類的析構函式而不是派生類的。如果你依賴於派生類的析構函式的 來釋放資源,而沒有過載析構函式,那麼會有資源...