class Test{public: Test(); int &getXxoo();private: int xxoo;};Test::Test(){ xxoo = 123;}int &Test::getXxoo(){ return xxoo;}
上图定义xxoo为Test类的私有属性,并通过getXxoo返回对xxoo的引用,
下图a通过复制传值得到xxoo的值,a是一个单独的变量,a的改变不影响xxoo,
p通过引用赋值得到xxoo的值,p和xxoo指向同一内存地址,对p和对xxoo的访问和赋值等价
int a = t->getXxoo(); cout << a << t->getXxoo() << endl; a = 2; cout << a << t->getXxoo() << endl; int &p = t->getXxoo(); cout << p << t->getXxoo() << endl; p = 2; cout << p << t->getXxoo() << endl;
通常我们会把函数参数写成类似
functions(const int ¶m)
即表示参数是对原变量的引用,但是又不允许修改原来的值