请看代码:
class A{
private:
int num;
public:
A(){
cout << "A's constructor" << endl;
}
~A(){
cout << "~A" << endl;
}
void show(){
cout << "num:" << num << endl;
}
};
int main()
{
char mem[10];
mem[0] = 'a';
mem[1] = '\0';
mem[2] = '\0';
mem[3] = '\0';
cout << (void*)mem << endl;
new(mem) char('b');
A* p = new(mem) A;
p->show();
cout << p << endl;
cout << (void*)mem << endl;
system("pause");
return 0;
}
运行完之后,(void*)mem的地址和p的地址一样,但是mem[0]里面的值还是‘a'没变,
那么开辟出的A类对象p的空间在哪?地址在哪?