1. 程式人生 > >【C++ Primer 第15章】定義派生類拷貝賦值運算符

【C++ Primer 第15章】定義派生類拷貝賦值運算符

運算符 結果 類成員變量 you 輸出 ons c++ prime get pre

學習資料

派生類的賦值運算符/賦值構造函數也必須處理它的基類成員的賦值

定義賦值運算符

【註意】對派生類進行拷貝構造時,如果想讓基類的成員也同時拷貝,就一定要在派生類拷貝構造函數初始化列表中顯示調用基類拷貝構造函數(當然在函數體內將基類部分的值拷貝也是可以的,只不過它是先用默認構造函數初始化後再修改的基類成員變量的值,效率比較低),否則它會調用基類的默認構造函數,而不會對基類的成員變量拷貝值,這樣生成的對象,它的派生類部分和被拷貝的對象派生類部分一樣,而基類部分則是默認構造函數的初始化結果。

 1 #include <iostream>
 2 using
namespace std; 3 4 class A 5 { 6 public: 7 A() { cout << "A default constructor" << endl; } 8 A(A&) { cout << "A copy constructor" << endl; } 9 }; 10 class B : public A 11 { 12 public: 13 B() { cout << "A default constructor" << endl; }
14 B(B &b) { cout << "B copy constructor" << endl; } 15 }; 16 17 int main() 18 { 19 B b; 20 B c = b; 21 return 0; 22 }

輸出結果:

【C++ Primer 第15章】定義派生類拷貝賦值運算符