[英]How to assign a pointer to base class to an object of a derived class in c++?
[英]c++ how to sign a derived class object base on the value of a same type temp object?
Class Dad{
public:
Dad();
Dad(char v){Dad_value = v;}
private:
char Dad_value;
};
class Child :public Dad{
public:
Child();
Child(short v1, short v2, char v):Dad(v){Child_v1 = v1; Child_v2 = v2;}
private:
short int Child_v1;
short int Child_v2;
};
//---------------------------------------
//define a Child array:
Child bd[100];
for (int i =0; i<100;i++){
bd[i] = Child(a,b,c);
}
從文件中讀取abc,兩個短1個字符。 如何簽名bd [i]。 我嘗試了重載“ =”,但是如何處理基類的私有部分是爸爸類。
謝謝。
您還需要在Dad
類中聲明一個operator=(Dad& other){...}
。 然后從您的子類中調用它。 像這樣:
class Child{
Child& operator=(Child& other){
Dad::operator=(other);
//more assignments
};
這是因為您聲明了Dad
的變量為private
,這意味着不允許任何非Dad::method()
的變量對其進行修改。 通常,當事情是私人的時,這是有充分理由的。 即。 您不需要進行更改,或者有更好的方法可以進行更改。
如果確實要允許您的Child
修改Dad
的變量,則可以在Dad
中將其設置為protected
的變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.