我第一次使用gcc(以前是msvc),現在我在返回對我的類中的變量的引用時遇到了一些問題。這裏是代碼:返回對屬性的引用(GCC)
class Foo
{
public:
const int& getMyVar() const
{
return mMyVar;
}
private:
int mMyVar;
};
如果有一個更大的數據結構不是一個簡單的INT,我不能想象我必須返回,而不是引用的副本。
以下是編譯錯誤:
error: invalid initialization of reference of type 'int&' from expression of type 'int'
這將是巨大的,如果你能幫助我,告訴我我該怎麼解決我的問題。
當我一個分號添加到末尾和編譯的問題與GCC 4.7.1在Mac OS X 10.8.4所示的類代碼,我得到'G ++ -Wall -Wextra -O3沒有錯誤 - c z1.cpp'。你添加了哪些額外的代碼來解決問題?你使用的是哪個版本的GCC?你還在使用Windows嗎? –
你有沒有做類似'blahblah = myfoo.getMyVar();'?如果是這樣,你代碼中的'blahblah'是什麼? –
當你需要'const int&b = foo.getMyVar()'時,我認爲你正在做'int&b = foo.getMyVar()'。 – perreal