생성자 안에서 동적할당을 받을 경우 얕은 복사의 문제가 발생하는데

1. 소멸자부분에서

2. 복사 생성자 부분에서

3. 대입연산에서

동적할당의 문제가 생기므로 각각 재정의 해줘야 한다.




* 만약 메인 함수에서 동적할당을 받은 클래스를 생성할 경우에는 소멸자의 경우에 가상 소멸자도 신경써줘야 한다.(virtual)




/////////////////////////////////////////////////////////////////////////////


대입연산의 경우

//    객체 안에서 

MSTR &operator=(const MSTR & jj)
{
if(this != &jj)
{
 delete [] p;
 p = new char [strlen(jj.p)+1];
 strcpy(p,jj.p);
 }
 return *this;
 }
Posted by huu
,