類的拷貝建構函式和等號 過載符

2021-09-19 22:46:47 字數 501 閱讀 7223

建立類的時候,對於有指標的成員變數,一定要新增拷貝建構函式和等號(=)過載符。否則進行的是指標指向複製,也就是淺拷貝,類銷毀時會重複銷毀,造成軟體crash。

1. 建立teacher類

2. 新增拷貝建構函式(深拷貝)

3. 新增等號(=)過載符

class teacher

//拷貝構造

teacher(const teacher& t)

//過載=

teacher& operator=(teacher& t)

this->name = new char[len];

strcpy(this->name, t.name);

this->age = t.age;

return *this;

} ~teacher()

this->age = 0;

} char* name;

int age;

};

拷貝建構函式和運算子過載

拷貝建構函式應用的場合由以下幾個方面 1 函式的引數是乙個物件,並且是值傳遞方式 2 函式的返回值是乙個物件,並且是值傳遞方式 3 用乙個物件初始化另外乙個物件 由此,當函式的引數或者返回值為乙個物件時,使用的時候要小心,因為值傳遞的時候執行的是位拷貝,並不會呼叫物件的建構函式,也就是說生成的臨時物...

普通建構函式 複製建構函式以及等號過載

include class aaa 新建的乙個普通類 class test test aaa a test test t 複製建構函式 test operator aaa a 等號過載 test operator test t 等號過載 int main int argc,char argv 輸出結...

拷貝建構函式 過載 操作符的區別 深拷貝

define crt secure no warnings include iostream using namespace std 如果要考慮深拷貝問題,必須寫拷貝建構函式和過載 操作符函式 深拷貝原則 1.判斷原記憶體空間是否為空,不為空則釋放掉 2.分配新的記憶體空間 3.拷貝 呼叫拷貝建構函...