대입에서 발생할 수도 있는 문제점은 타깃 객체가 이전에 대입한 데이터가 있을 때에 new로 선언된 부분이 있었다면 delete를 사용하여 해제를 해주어야한다. 만약 이 과정을 하지 않고 넘기게 된다면 메모리 누수가 생긴다.
Test& operator=(const Test& t); //함수 원형
Test& Test::operator=(const Test& t) //대입하여 char* 형에 문장을 넣는다.
{
if (this == &t) //대입되는 객체가 자기 자신일 때는 바로 리턴한다.
return *this;
delete[] names;
len = t.len;
names = new char[len + 1];
strcpy_s(names, len + 1, t.names);
return *this;
}
'C++ > Basic' 카테고리의 다른 글
[C++] 클래스의 상속 (0) | 2021.07.05 |
---|---|
[C++] 멤버 초기자 리스트 (0) | 2021.07.04 |
[C++] 복사 생성자 (0) | 2021.06.29 |
[C++] 클래스의 데이터형 변환 (0) | 2021.06.25 |
[C++] 연산자 오버로딩과 프렌드 (0) | 2021.06.24 |