#include <iostream>
using namespace std;
class A
{
public:
A(int i){cout<<"构造函数执行\n";x=i;}
A(A&a){cout<<"复制构造函数创建对象\n";x=a.x;}
~A(){cout<<"析构函数\n";}
int get(){return x;}
private:
int x;
};
A func()
{
cout<< " 跳转到func函数中"<<endl;
A a(23);
cout<<"a 的地址"<<&a<<endl;
return a;
}
int main()
{
A&r=&func();
cout<<r->get()<<endl;
cout<<"a 的地址"<<r<<endl;
system ("pause");
return 0;
}
如果在func函数前面加上引用,A &func() devc++就可以编译了。
可是a出去不是空引用么?怎么会得到a的值呢?
A&r=func(); //这前面没有&
cout<<r.get()<<endl; //这里不是指针 用的是"."
cout<<"a 的地址"<<&r<<endl; //这里是&r
system ("pause");
return 0;cout<<r.get()<<endl; //这里不是指针 用的是"."
cout<<"a 的地址"<<&r<<endl; //这里是&r
system ("pause");
return 0;
九州编程
宝慕林4294392