C++中,復制構造函數為什麼要用“常引用”作形參,而不是“引用”?謝謝啦
復制構造函數中不能修改的內容,是p的成員變量,即p.pointer的值。也就是說,你不能使p.pointer指向別的位置。即下面這段代碼會報錯:
Pstu(const Pstu& p)
{
pointer = p.pointer;
p.pointer = NULL; //這句代碼會報錯
cout << "此時count為:" << (*pointer).count << endl;
(*pointer).count++;
cout << "Pstu1" << endl;
cout << "此時count為:" << (*pointer).count << endl;
}
const只能保護到這一層,至於你再去修改pointer所指向的變量的值,const是保護不了的。