【发布时间】:2015-09-06 15:06:55
【问题描述】:
我对退出程序感到困惑 考虑我们有一个像下面这样的类:
#ifndef SOMECLASS
#define SOMECLASS
class SomeClass
{
public:
SomeClass();
SomeClass(int);
~SomeClass();
void foo(const int&);
}
#endif
及其实现....
所以在主函数中:
int main(int argc, char **argv){
SomeClass* smc=new SomeClass();
cout<<smc<<"--"<<&smc<<"--"<<&*smc;
}
我的输出如下:
0xf66210----0x7ffd622a34f0----0xf66210
为什么smc和&smc和&*smc有区别? 注意 smc 和 &*smc 是相等的。
我正在使用 ubuntu(14.04_x64) 和+cmake(2.18)+gcc(4.8.4)
【问题讨论】:
-
为什么你希望一个对象的地址等于指向这个对象的指针的地址?对象和指向它的指针是不同的对象,它们有不同的地址吗?