class A
{
int Avalue;
A& operator=(A& copyMe)
{
Avalue = copyMe.Avalue;
return *this;
}
}
class B:public A
{
int Bvalue;
B& operator=(B& copyMe)
{
Bvalue = copyMe.Bvalue
return *this;
}
}
如何從B的賦值運算符調用A或基類賦值運算符?如何從賦值運算符調用處理A的返回引用。覆蓋繼承類中的賦值運算符
此外,它總體上是好的做法,採取一個const&作爲參數,以各種理由: A&運算符=( const A&copyMe) B&operator =(const B&copyMe) – Rollie
事實上,每當你傳入一些不會改變的東西時,真正的使它成爲const是不會傷害的。也適用於成員方法,如果它不應該改變任何東西,使它成爲const。它節省了神經和時間。另外,我建議儘早進入。你開始更多地考慮你的代碼應該做什麼,不應該做什麼。 – 2012-06-26 04:55:47
更重要的是,寫一個複製賦值操作符而不寫一個拷貝構造函數幾乎不是一個好主意。在這種情況下,你會擺脫它,因爲默認的拷貝構造函數很好 - 但是默認的賦值運算符也是如此,所以你不需要定義這個。 (另外,對於這個類,我會通過值來傳遞copyMe,而不是通過引用賦值操作。它更簡單,實際上編譯器更容易優化 - 而不是對於一對int整數來說很重要。) – abarnert