淺談c++複製構造函數和賦值操作符。

何時調用:

1,如果變量沒有聲明過,那麼將會調用複製構造函數。如:

A a;

A a2=a;//調用複製構造函數將a複製到a2.


2,如果變量已經聲明過,將會調用賦值操作符。

A a;

A a2;

a2=a;//調用賦值操作符將a的值複製到a2


備註:不管是複製構造函數還是賦值操作符,都要注意類成員存在指針的情況。這種情況下,如果採用淺複製那麼應該使用引用計數;當然可以採用深複製方式使每個對象擁有獨立的副本,不過這樣消耗內存和時間。


3,關於析構函數何時爲虛擬的問題。一般是在擁有子類的父類中,需要將其析構函數聲明爲虛擬的,以便使子類的析構函數得到調用。


發佈了50 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章