调用析构函数后,为什么仍可访问成员变量

时间:2017-12-10 07:48:21

标签: c++

class Cls {
public:
Cls() {
}

Cls(int id)
: id(id)  {

}

~Cls() {
  id = 999;
  std::cout<<id<<" Bye!"<<std::endl;
}

int id;
char data[999999] = {0, };
};

int main() {
    Cls* cl3 = new Test(3);
    int* id = &(cl3->id);
    std::cout<<id<<std::endl;
    std::cout<<*id<<std::endl;
    delete cl3;
    std::cout<<id<<std::endl;
    std::cout<<*id<<std::endl;
    return 0;
}

为什么删除t3类后仍然可以访问id? 据我所知,析构函数将删除所有成员变量。

0 个答案:

没有答案