c++復習


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類中重載的加法運算符成員函數進行聲明,下列選項中正確的是(    )。

A.Data operator+(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修飾的類成員或初始化引用成員數據;

   情況三、子類初始化父類的私有成員;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM