正如我在 c++ 中所知道的,当您通过引用传递变量时,意味着我们传递的是变量而不是它的副本。因此,如果一个函数将引用作为参数,我们知道该函数对参数所做的任何更改都会影响原始变量(传入的变量)。但我现在卡住了:我有一个成员函数,它引用 int 这个成员函数 void DecrX(int &x) 在调用它时递减 x 。我得到的问题是原始变量永远不会受到影响???!!!例如:
#include <iostream>
using namespace std;
class A
{
public:
A(int &X):x(X){}
int &getX(){return x;}
void DecrX(){--x;}
void print(){cout<<"A::x= "<<x<<endl<<endl;}
private:
int x;
};
int main()
{
int x=7;
cout<<"x= "<<x<<endl;
A a(x);//we passed the x by reference
a.DecrX();// here normally DecrX() affect the original x
a.print();//here it is ok as we thought
a.DecrX();
a.DecrX();
a.print();
cout<<"x= "<<x<<endl;//why x is still 7 not decremented
cout<<endl;
return 0;
}