在这里糊涂了。即使传入this
初始化列表,程序也正在编译并成功运行。我的印象是,在传递this
到这里时,编译器应该给出一些错误,因为这里没有创建对象。
两个cout
s的输出是一样的;即他们持有相同的地址。
我知道这不是正确的编程方法,但这里到底发生了什么?
class foo
{
public:
foo():myself( this ) {}
foo * myself;
};
int main()
{
foo f;
cout<<f.myself<<endl;
cout<<&f<<endl;
return 0;
}