我遇到了C++類的這個問題。我想獲得指向myBar
對象的對象,並將其存儲在quxBar
中。原因是我希望能夠使用quxBar->getX()
來檢查價值,但我也想避免意外地從Qux中調用它,所以我嘗試使用Bar const*
。C++指向const類成員問題的指針
class Bar
{
private:
int x;
public:
void setX(int X) { x = X; };
int getX(){ return x };
}
class Foo
{
private:
Bar *myBar;
public:
Bar const* getPointerToBar(){ return myBar; };
}
class Qux
{
void myMethod();
Bar const* quxBar;
Foo *mainFoo;
}
void Qux::myMethod()
{
quxBar = mainFoo->getPointerToBar();
std::cout << quxBar->getX();
quxBar->setX(100); // HERE!!!
std::cout << quxBar->getX(); // returns 100
}
可惜的是它不工作,因爲我仍然能夠與沒有編譯錯誤執行quxBar->setX(100)
。
也許我的方法是完全錯誤的,但使用當前的「技能」:)我不知道如何解決它。
在此先感謝您的任何幫助和建議。
你能至少發佈實際編譯的代碼嗎?當我修復了所有顯而易見的編譯錯誤(不正確的分號等)時,我得到了以下幾個錯誤:'將const Bar'作爲'int'的Bar參數'getX()'丟棄限定符' 。 – 2010-10-12 11:06:58
我認爲你的編譯器有問題。你使用什麼編譯器? – Goz 2010-10-12 11:34:33
你根本沒有得到一個錯誤或只是在那一行?你需要在你的類定義的最後一個分號。 – CashCow 2010-10-12 12:28:52