struct A{
virtual void what() { cout << "Base" << endl; };
};
struct B : A {
virtual void what() { cout << "Sub" << endl; };
int m;
B() : m(10) {};
B(const A & x) : m(50) {};
};
void main() {
B b1;
B b2 = b1;
cout << "Number: "
<< b2.m << endl;
};
爲什麼不b2.m = 50?我試圖複製一個B對象,我有複製構造函數B(const A & x):m(50)。我是否需要爲派生類的屁股製作副本c'tor?像B一樣(常量B & x)??我想,因爲一個b對象具有一個部分,我們可以使用B(const的甲& X):M(50),而不是默認的構造::S拷貝構造繼承
在這種情況下,你有一個功能與參數一個A對象,你可以發送一個B對象。它如何與複製構造函數不同?