과부하로 delete
을 사용하거나 del()
기능 또는 다른 클래스 멤버를 할당 해제해야합니까?클래스 멤버를 올바르게 할당 해제하는 방법은 무엇입니까?
class Field
{
private:
size_t* square = new size_t[5];
public:
void del()
{
delete[] square;
}
void operator delete (void* p)
{
delete[] reinterpret_cast<Field*>(p)->square;
}
};
int main()
{
Field f;
delete &f;
//or
f.del();
}
아니요. [소멸자] (http://en.cppreference.com/w/cpp/language/destructor)를 사용하십시오. –
new를 사용하거나 피할 수 있으면 삭제하지 마십시오. 'vector' 사용 – AndyG
[최신 C++에서 새 포인터와 삭제 포인터, 원시 포인터 또는 C 스타일 배열을 사용하는 유즈 케이스가 있습니까?] (https://stackoverflow.com/questions/46991224/are-there-any- 유효 사용 사례 - 사용 - 새롭고 - 삭제 - 원시 포인터 - 또는 -C 스타일 - arr) – user0042