【发布时间】:2016-12-04 23:04:03
【问题描述】:
我试图通过引用将 int 存储为类的数据成员。 我希望这是通过引用获取 int 的对象,而不是从外部增加引用会增加对象内部的值。
class A
{
private :
int& x;
public:
A(int y) : x(y)
{
cout << "A's ctor x = " << x << endl;
}
void print()
{
cout << "x = " << x << endl;
}
};
int main()
{
int i = 8;
A a(i);
a.print();
++i;
a.print();
}
输出是:
A's ctor x = 8
x = 8
x = 8
为什么 x 不是 9?
【问题讨论】:
-
你认为
x是(注意时态)引用什么?提示:不是i。剧透:A(int& y)。调高你的警告级别。您应该已经收到“将引用成员 'x' 绑定到堆栈分配的参数 'y'”的警告
标签: c++ reference pass-by-reference