#include <iostream>
using namespace std;
class Human
{
public:
int x;
void hi(){cout<<"XXXXXX"<<endl;}
void ho()
{
cout<<x<<endl;
int* q = new int;
*q = 3;
x = (int)q;
}
void hq()
{ int* q = new int;
*q = 3;
//这里 能不能 给 x变量 绑定一个地址。这个 地址是 q的创建的
cout<<"我自己都不知道我自己应该在哪里 "<<*q<<" "<<q<<endl;
delete q;
}
Human(): x(1)
{
cout<<"我应该在不出现的吧? "<<&x<<endl;
}
~Human()
{
delete (int* )x;
}
};
int main()
{
Human* p = NULL;
p->hi();
p->hq();
//p->ho(); //直接死
p = new Human;
p->ho(); //前面执行直接死
p->hq();
return 0;
}
可以让主函数Main里面的 //p->ho(); //直接死
这里的代码正常运行
Human* p = NULL;
这个类是 NULL 空的。
但是代码都是在内存中的。
所以
p->hi();
p->hq();
没有问题。
那么调用p->ho();
会产生一个问题。此时 的int x还没有地址。我想给这个x 创建一个内存地址 让他的调用没问题。