c++

깊음복사와 얕은 복사

내동 2018. 7. 15. 19:24

깊은복사와 얕은복사

깊은 복사는 복사에의해 실제로 두 개의 대상 값이 생성된다

얕은 복사는 대상이되는 값은 여전히 하나이지만 접근 포인터만 둘로 늘어나는 것을 말한다.

#include "stdafx.h"

#include<iostream>

using namespace std;

class CTest

{

public:

CTest (int nParam)

{

m_pnData = new int;

*m_pnData = nParam;

}

// 복사 생성자 선언및 정의

CTest (const CTest &rhs)

{

cout<<" CTest (const CTest &)"<<endl;

//메모리를 할당한다

m_pnData = new int ;

*m_pnData = * rhs. m_pndata ;

}

~CTest(){ delete m_pnData ;}

int GetData()

{

if(m_pnData != NULL) return *m_pnData; return 0;

}

private:

int *m_pnData = nullptr;

};

int _tmain ( int argc, _TCHAR * argv[])

{

CTest a(10); CTest b(a);

cout<< a.GetData()<<endl;

cout<<b.GetData()<<endl;

return 0;

}

CMydata(const CMydata &)

10

10


'c++' 카테고리의 다른 글

클래스  (0) 2018.08.03
대입연산자  (0) 2018.07.15
함수호출과 복사생성자  (0) 2018.07.15
복사생성자  (0) 2018.07.15
가상함수  (0) 2018.07.13