如果我们注释掉下面强调的行,我们会在控制台中得到 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;
}
谁能帮我弄清楚为什么我会看到这种行为?