我寫了下面的代碼,我期待得到 6,但我得到了5 6 5 0。看起來,「val」在開始時正確地獲取了引用,但隨後它會丟失。有人知道我的錯誤在哪裏嗎?初始化引用
class Count {
public:
void add() {
val++;
}
void print() {
cout << val << endl;
}
Count(int c): val(c) {
}
private:
int &val;
};
int main() {
int c = 5;
Count teste(c);
teste.print();
teste.add();
teste.print();
cout << c << endl;
teste.print();
return 0;
}
在構造函數中,該參數是一個左值,因此您可以將其綁定到引用。一個很好的編譯器可能會警告所產生的引用在很短的時間內有效。 – 2011-03-03 16:47:04
我用g ++編譯它(我不知道它是否有任何區別,但是我在cygwin環境中運行它)。 – Carlos 2011-03-06 07:17:47