深層複製建構函式
#include <iostream>
using namespace std;
class A
{
public:
A(){x=new int;*x=5;} //建立一個物件的同時將成員指標指向的變數儲存到新空間中
~A(){delete x;x=0} //析構物件的同時刪除成員指標指向的記憶體空間,為了
//穩妥起見將指標賦為空
A(const A&a) //const為了避免對a進行操作
{
cout<<"複製建構函式執行。。。\n"<<endl;
x=new int; //複製構造物件的同時將成員指標指向的變數儲存到新空間中
*x=*(a.x) //讀取舊物件的成員指標x指向的空間處的資料
//並賦給新物件的成員指標x所指向的記憶體區域
}
private:
int *x;
};
int main()
{
return 0;
}
用已有的物件建立新的物件才會呼叫複製建構函式相關文章
- C++再議建構函式及複製建構函式深度複製C++函式
- C++複製建構函式C++函式
- 消除複製建構函式和“模板式複製建構函式”中的冗餘程式碼 (轉)函式
- C/C++——建構函式、複製建構函式和解構函式的執行時刻C++函式
- C++複製控制:拷貝建構函式C++函式
- vue物件的深層複製Vue物件
- js 實現深複製/深複製JS
- 帶複製建構函式、賦值運算子的模板佇列函式賦值佇列
- 深度解讀《深度探索C++物件模型》之複製建構函式C++物件模型函式
- Java引用複製、淺複製、深複製Java
- 建構函式與解構函式函式
- JS物件複製:深複製和淺複製JS物件
- JavaScript 淺複製和深複製JavaScript
- ## 建構函式函式
- 建構函式函式
- 【C/C++】為什麼需要複製建構函式的同時通常也需要過載複製運算子C++函式
- C++拷貝建構函式(深拷貝,淺拷貝)C++函式
- [譯] 建構函式已死,建構函式萬歲!函式
- C++ 建構函式和解構函式C++函式
- 類的建構函式和解構函式函式
- go slice深複製和淺複製Go
- c#淺複製與深複製C#
- js 淺拷貝(淺複製、淺克隆)、深拷貝(深複製、深克隆)JS
- c# tcbs之建構函式呼叫建構函式示例C#函式
- js物件深複製JS物件
- C++ 類建構函式和解構函式C++函式
- JavaScript 建構函式JavaScript函式
- 建構函式、this、static函式
- JavaScript中的淺複製與深複製JavaScript
- 虛解構函式(√)、純虛解構函式(√)、虛建構函式(X)函式
- C++ 建構函式實戰指南:預設構造、帶引數構造、複製構造與移動構造C++函式
- PHP筆記:建構函式與解構函式PHP筆記函式
- 【C++】初始化列表建構函式VS普通建構函式C++函式
- C++語言之結構體、類、建構函式、拷貝建構函式C++結構體函式
- C++中建構函式,拷貝建構函式和賦值函式的詳解C++函式賦值
- 建構函式建立物件函式物件
- JavaScript Date()建構函式JavaScript函式
- 11-建構函式函式