c++按别名(引用)来传递对象实例说名

c++按别名(引用)来传递对象实例说名,由于引用不能重新分配去引用另外一个对象,它始终是常量,所以我们不用将它设为常量。b不是一个新对象,而是一个引用,它引用的是func函数的返货别名,也就是对象a的别名,该别名赋给了b后,b又成了a的别名,因此b实际就是对象a的别名,它代表对象a,不是新对象,所以不能调用复制构造函数。

#include <iostream>
using namespace std;
class A
{
public:
A(){cout<<”执行构造函数创建一个对象\n”;}
~A(){cout<<”执行析构函数删除该对象\n”;}
A(A&){cout<<”执行复制构造函数创建该对象的副本\n”;}
void set(int x){i=x;}
int get()const{return i;}
private :
int i;
};

const A& func( const A & one){//c++别名就是常量

return one;
}

int main()
{
A a;
a.set(99);
A const &b=func(a);//别名常量b
//A c=func(a);不要用新对象接收返回的c++别名
//b.set(33);
cout<<b.get()<<endl;//通过c++别名访问
return 0;
} 本文链接地址: c++按别名(引用)来传递对象实例说名