ここで混乱しました。初期化リストを渡してもthis
、プログラムはコンパイルされ、正常に実行されます。this
オブジェクトがここで作成されていないため、ここを渡すと、コンパイラは何らかのエラーを出すはずだという印象を受けました。
両方の の出力はcout
同じです。つまり、同じアドレスを保持しています。
これが正しいプログラミング方法論ではないことはわかっていますが、ここで何が起こっているのでしょうか?
class foo
{
public:
foo():myself( this ) {}
foo * myself;
};
int main()
{
foo f;
cout<<f.myself<<endl;
cout<<&f<<endl;
return 0;
}