我有這些類:多態性問題C++
class A
{
};
class B : public A
{
public:
B(int val);
private:
int* m_int;
};
B::B(int val)
{
m_int = &val;
}
我打電話,像這樣的代碼,裏面1個功能,我知道一旦他們超出範圍的增值經銷商將被摧毀,但我只需要他們在這個功能:
{
...
int _int = 0;
B obj(_int);
A *obj2 = &obj;
_int++;
...
}
問題是_int正在更改爲1,但m_int保持不變。我需要m_int來反映_int中的值,而不需要用代碼進行更新。我認爲有一個指向內存位置的指針會起作用?
第二個問題是,當我將鼠標懸停在obj2上以查看obj的值時,我收到消息「兒童無法評估」。
你的代碼是否被編譯? – iammilind 2011-05-13 09:26:47
您發佈的代碼無法編譯。首先,B的構造函數沒有被聲明,其次,在該構造函數中,您將'm_int'設置爲'ref'的地址,這在代碼中無處可見。 – Darhuuk 2011-05-13 09:28:00
@iammiling是什麼意思是你的代碼不應該編譯,因爲'B'沒有一個構造函數需要'int'。 – 2011-05-13 09:28:45