깊은복사와 얕은복사
깊은 복사는 복사에의해 실제로 두 개의 대상 값이 생성된다
얕은 복사는 대상이되는 값은 여전히 하나이지만 접근 포인터만 둘로 늘어나는 것을 말한다.
#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