国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++深拷貝淺拷貝

2019-11-08 03:06:53
字體:
來源:轉載
供稿:網友

拷貝構造函數分為深拷貝和淺拷貝,淺拷貝是將對象的成員依次進行賦值操作,而深拷貝則是將對象中若是存在指針成員,將指針成員所指向的成員依次進行賦值操作。

Array.h

class Array{public:    Array(int count);    Array(const Array &arr);    ~Array();    void setCount(int count);    int getCount();    void PRintAddr();    void printArr();private:    int m_iCount;    int *m_pArr;};Array.cpp

#include<iostream>#include"Array.h"using namespace std;Array::Array(int count){    m_iCount=count;    m_pArr=new int[m_iCount];    for(int i=0;i<m_iCount;i++)    {        m_pArr[i]=i;    }    cout<<"Array()"<<endl;}Array::Array(const Array &arr){    m_iCount=arr.m_iCount;    m_pArr=new int[m_iCount];    for(int i=0;i<m_iCount;i++)    {        m_pArr[i]=arr.m_pArr[i];    }    cout<<"Array(const Array &arr)"<<endl;}Array::~Array(){    delete []m_pArr;    m_pArr=NULL;    cout<<"~Array()"<<endl;}void Array::setCount(int count){        m_iCount=count;}int Array::getCount(){        return m_iCount;}void Array::printAddr(){    cout<<"m_pArr的值:"<<m_pArr<<endl;}void Array::printArr(){    for(int i=0;i<m_iCount;i++)    {        cout<<m_pArr[i]<<endl;    }}demo.cpp

#include<iostream>#include"Array.cpp"using namespace std;/**  實例安排:  1.定義一個Arry類,數據成員為m_iCount,成員函數包括數據封裝函數,  構造函數,拷貝構造函數和析構函數,通過此實例體會淺拷貝原理。  2.增加數據成員m_pArr,并增加m_pArr地址查看函數,同時改造構造函數,  拷貝構造函數和析構函數,體會深拷貝的原理和必要性。*/int main(){    Array arr1(5);    //arr1.setCount(5);    Array arr2(arr1);    cout<<"arr2.m_iCount"<<arr2.getCount()<<endl;    arr1.printAddr();    arr2.printAddr();    arr1.printArr();    arr2.printArr();    return 0;}
Array()Array(const Array &arr)arr2.m_iCount5m_pArr的值:0x9c0e20m_pArr的值:0x9c0e400123401234~Array()~Array()


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 吉隆县| 尼勒克县| 沁源县| 陆良县| 银川市| 诸暨市| 苗栗市| 普宁市| 肇源县| 武安市| 高唐县| 玉溪市| 南昌市| 绥德县| 兴安县| 玉龙| 和平县| 会东县| 聂拉木县| 长顺县| 香河县| 清徐县| 龙口市| 青冈县| 栖霞市| 鲁甸县| 庐江县| 布拖县| 象山县| 临江市| 田阳县| 巴林左旗| 乌拉特中旗| 麻城市| 砚山县| 德格县| 庄河市| 三门峡市| 谷城县| 措美县| 富裕县|