何時調用:
1,如果變量沒有聲明過,那麼將會調用複製構造函數。如:
A a;
A a2=a;//調用複製構造函數將a複製到a2.
2,如果變量已經聲明過,將會調用賦值操作符。
A a;
A a2;
a2=a;//調用賦值操作符將a的值複製到a2
備註:不管是複製構造函數還是賦值操作符,都要注意類成員存在指針的情況。這種情況下,如果採用淺複製那麼應該使用引用計數;當然可以採用深複製方式使每個對象擁有獨立的副本,不過這樣消耗內存和時間。
3,關於析構函數何時爲虛擬的問題。一般是在擁有子類的父類中,需要將其析構函數聲明爲虛擬的,以便使子類的析構函數得到調用。