深層複製建構函式
#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物件
- C++ 移動構造和複製建構函式匹配C++函式
- 物件的生存期 記憶體 深度複製 複製建構函式 筆記物件記憶體函式筆記
- 結構體中的指標&&複製賦值建構函式改造結構體指標賦值函式
- js 實現深複製/深複製JS
- 帶複製建構函式、賦值運算子的模板佇列函式賦值佇列
- 深度解讀《深度探索C++物件模型》之複製建構函式C++物件模型函式
- C++ 禁用類的複製建構函式和賦值運算子C++函式賦值
- Java引用複製、淺複製、深複製Java
- 建構函式與解構函式函式
- JavaScript 淺複製和深複製JavaScript
- JS物件複製:深複製和淺複製JS物件
- js 深複製JS
- ## 建構函式函式
- 建構函式函式
- 【C/C++】為什麼需要複製建構函式的同時通常也需要過載複製運算子C++函式
- C++拷貝建構函式(深拷貝,淺拷貝)C++函式
- [譯] 建構函式已死,建構函式萬歲!函式
- 淺複製和深複製的概念與值複製和指標複製(引用複製)有關 淺複製 “指標複製 深複製 值複製指標
- C++ 建構函式和解構函式C++函式
- 類的建構函式和解構函式函式
- go slice深複製和淺複製Go
- c#淺複製與深複製C#
- go的深複製跟淺複製Go
- python 淺複製、深複製坑Python
- python 深複製和淺複製Python
- js 淺拷貝(淺複製、淺克隆)、深拷貝(深複製、深克隆)JS
- c# tcbs之建構函式呼叫建構函式示例C#函式
- js物件深複製JS物件
- C++ 類建構函式和解構函式C++函式
- JavaScript 建構函式JavaScript函式
- 建構函式、this、static函式