1、構造函數不能被聲明為虛函數,析構函數可以被聲明為虛函數。
(虛函數的參數類型 順序 個數必須一樣)
構造函數可以被重載,析構函數不可以被重載。
2、子對象不可以是自身類的對象。
因為此使對象所屬的類並沒有定義好。
3、這一條來自這個地方
1)用const修飾定義的對象為常對象
兩種聲明方式:
const point point1(10,10);
point const point2(10,10);
2)用const修飾的聲明數據成員成為常數據成員
變量或對象被const修飾后其值不能被更新(除非數據成員被mutable修飾時,用const修飾
的變量或者對象要進行初始化。
說明:
任何函數都不能對常數據成員進行賦值
構造函數對常數據成員進行初始化時也只能通過初始化列表進行
常數據成員在定義時必須初始化
如果類有多個默認構造函數必須都初始化常數據成員
不能對常數據成員在類中初始化
3)常成員函數
const是函數類型的一部分,在實現部分也要帶該關鍵字
const關鍵字可以用於對重載函數的區分
常成員函數不能更新任何數據成員,也不能調用該類中沒有用const 修飾的成員函數,
只能調用常成員函數和常數據成員。
常成員函數可以被其他成員函數調用
但是不能調用其他非常成員函數
可以調用其他常成員函數
常對象只能調用常成員函數
常成員函數只能調用其他常成員函數
4、一個類的友元函數或友元類可以訪問該類的所有成員
5、
this指針是指向對象的
this是一個由系統自動生成的指針
this指針在用對象引用成員函數時系統創建的
this指針既可以隱含使用也可以顯示使用
6、
若要對Data類中重載的加法運算符成員函數進行聲明,下列選項中正確的是( )。
B.Data+(Data);
C.Data+operator(Data);
D.operator+(Data, (Data);
7、
已知:const A a; 其中A是一個類名,指向常對象指針的表示為( )。
A.const *pa A;
B.const * A pa;
C.const A *pa; 對的
D.A * const pa;
8、
下列關於多繼承二義性的描述中,錯誤的是( )
- A.解決二義性的方法是采用類名限定
- B.基類和派生類中同時出現同名成員時,會產生二義性(選這個)
- C.一個派生類有多個基類,而這些基類又有一個共同的基類,派生類訪問公共基類成員時,可能出現二義性
-
D.一個派生類的多個基類中出現了同名成員時,派生類對同名成員的訪問可能出現二義性、、、、
9、多態調用是指( )。
A.借助於指向對象的基類指針或引用調用一個虛函數 √
B.借助於指向對象的基類指針或引用調用一個純虛函
C.以任何方式調用一個純虛函數
D.以任何方式調用一個虛函數
10、基類的子對象不能在派生類的構造函數的參數初始化列表中初始化。
11、
虛函數具有繼承性
虛函數是一個成員函數
在類的繼承的層次結構中,虛函數是說明相同的函數
靜態成員函數不可以說明為虛函數
12、
下列關於多繼承二義性的描述中,錯誤的是( )
A.解決二義性的方法是采用類名限定
B.基類和派生類中同時出現同名成員時,會產生二義性 √
C.一個派生類有多個基類,而這些基類又有一個共同的基類,派生類訪問公共基類成員時,可能出現二義性
D.一個派生類的多個基類中出現了同名成員時,派生類對同名成員的訪問可能出現二義性
13、必須使用參數初始化表的三種情況:
情況一、需要初始化的數據成員是對象的情況(這里包含了繼承情況下,通過顯示調用父類的構造函數對父類數據成員進行初始化);
情況二、需要初始化const修飾的類成員或初始化引用成員數據;
情況三、子類初始化父類的私有成員;