假設我有下面的類:混淆拷貝構造函數和私有成員
class Test
{
int num;
public:
Test(int x):num(x){}
Test(const Test &rhs):num(rhs.num+1){}
};
int main()
{
Test test(10);
Test copy = test;
}
在副本中num
應該是11
,我的問題是關於拷貝構造函數裏面,爲什麼我們訪問私有成員num
的test
使用num
初始化num
的副本?令我困惑的是,如果你輸入cout<<test.num<<endl
,當然這是錯誤的,因爲你試圖訪問專用num
,但如果你通過引用複製構造函數來通過測試,它的工作原理,任何人都可以告訴我這裏發生了什麼?
,讓我感到困惑的是,如果你輸入類似「cout << test.num << endl」,當然這是錯誤的,因爲你想訪問私人號碼,但是如果你通過參考拷貝來通過測試構造函數,它的工作原理,任何人都可以告訴我whay在這裏發生,因爲我的英語不是很好,我希望你們能理解我在說什麼 – user1629199
你的英語不是很好,但足以說明問題。如果你問我,我會盡量縮短句子,避免多次重複。另外,當在問題中編寫代碼時,用反勾號將其包括起來,將其格式化爲代碼並轉義(避免解析器將
感謝您的建議,我試圖提高我的英語和學習一切 – user1629199