좀 이상한 문제가 있습니다. 나는 클래스 연산자의 내부에서 delete 연산자를 사용하고 어떻게이 문제를 해결하는지 알고 싶다.클래스 내부에서 삭제
이 코드 : 데이터가 삭제 운영자에 의해 삭제 된 경우
#include <iostream>
using namespace std;
class A
{
public:
int a;
~A() {
cout << "call ~A()" << endl;
}
void action()
{
/* code here */
delete this; //this line depends on some if statements
/* code here */
}
void test2() {
cout << "call test2()" << a << endl;
}
void test() {
a = 10;
cout << "call test()" << endl;
action();
//how can I check if data is deleted?
test2();
}
};
int main()
{
A* a = new A();
a->test();
}
는 어떻게 확인할 수 있나요? 심지어 가능합니까?
당신은 비 정적 멤버 함수 내에서 클래스의 인스턴스를 삭제합니다. 나는 너 자신에게 "나는 무엇을 성취하려고 하는가?"라고 자문 할 필요가 있다고 생각한다. 예를 들어 – lapk
내가이 윈도우의 자식 버튼 액션 closeWindow을() 나는 나는 당신이 필요 디스패처 – UnknownError1337
의 가장 빠른 방법 또는 사용 였을 것입니다 생각, 창을 삭제해야하지만, 방법을 정확하게 모르는 호출 할 때, GUI를 가지고 실제 창을 파괴하지만 누가이 창을 나타내는 C++ 클래스의 인스턴스를 삭제해야한다고 말했습니까? Windows 메시지 처리를 수행하는 경우 여기 [일부 정보] (http://stackoverflow.com/questions/8273830/win32-more-object-oriented-window-message-handling-system/8274312#8274312)가 있습니다. Remy Lebeau는 Borland VCL에서 어떻게 수행되는지에 대한 흥미로운 통찰력을 제공합니다. – lapk