以下の強調された行をコメントアウトすると、コンソールに 777 が表示されます。そうしないと、(-534532345) のようなガベージが発生します。私の環境は Microsoft Visual Studio 2012 Pro です。
class C
{
public:
C () { x = 777; }
void ou() {cout << x;}
protected:
int x;
};
class A
{
public:
A(C & rrc) : rc(rrc) {};
void koo () {rc.ou();}
protected:
C & rc;
};
int _tmain(int argc, _TCHAR* argv[])
{
C c;
C * pc = new C;
A a(*pc);
delete pc; // <<<< this line
a.koo();
return 0;
}
この動作が見られる理由を理解するのを手伝ってくれる人はいますか?