지금 짜면서 계속 궁금한게
char* a @ class TEST(private)
TEST::TEST(TEST &&other)
{
this->a = other.a;
other.a = nullptr;
}
에서
왜
other.a = nullptr을 넣나여
지금 소멸자가
TEST::~TEST()
{
if(this->a != nullptr)
delete[] this->a;
}
이렇게 되어있는데
이동생성자 불러서 a가 nullptr이 되면
소멸자 호출할때 메모리 해제 안되서 누수 빵빵 생기지 않나여
이동된객체에서 해제하죠.
그러믄 tests.push_back(std::move(변수)) 할때 std::move 에서 해제해주나여
존나 신기하다
그러면 if(this->a != nullptr) 이 구문은 뻘짓인건가여
아 그럼 move 호출해서 이동생성자 호출해서 nullptr 한뒤에 그걸 해제해주면 되나여? 그럼 오히려 if(this->a != nullptr) 이건 빼야겟네여
아 그런감..있던 말던 그럼 상관 없는거군요!