생성자 안에서 동적할당을 받을 경우 얕은 복사의 문제가 발생하는데
1. 소멸자부분에서
2. 복사 생성자 부분에서
3. 대입연산에서
동적할당의 문제가 생기므로 각각 재정의 해줘야 한다.
* 만약 메인 함수에서 동적할당을 받은 클래스를 생성할 경우에는 소멸자의 경우에 가상 소멸자도 신경써줘야 한다.(virtual)
/////////////////////////////////////////////////////////////////////////////
대입연산의 경우
1. 소멸자부분에서
2. 복사 생성자 부분에서
3. 대입연산에서
동적할당의 문제가 생기므로 각각 재정의 해줘야 한다.
* 만약 메인 함수에서 동적할당을 받은 클래스를 생성할 경우에는 소멸자의 경우에 가상 소멸자도 신경써줘야 한다.(virtual)
/////////////////////////////////////////////////////////////////////////////
대입연산의 경우
// 객체 안에서
MSTR &operator=(const MSTR & jj)
{
MSTR &operator=(const MSTR & jj)
{
if(this != &jj)
{
{
delete [] p;
p = new char [strlen(jj.p)+1];
strcpy(p,jj.p);
p = new char [strlen(jj.p)+1];
strcpy(p,jj.p);
}
return *this;
return *this;
}