针对“不能返回局部变量的引用”这句话,我想问问下面这段代码问什么可以正常运行。#include iostreamusing
针对“不能返回局部变量的引用”这句话,我想问问下面这段代码问什么可以正常运行。
#include <iostream>
using namespace std;
class A
{
public:
A(){cout<<"执行构造函数创建一个对象\n";}
A(A&){cout<<"执行复制构造函数创建该对象的副本\n";}
~A(){cout<<"执行析构函数删除对象\n";}
void set(int i){x=i;}
int get()const{return x;}
private:
int x;
};
A& func( A& one)
{
return one;
}
int main()
{
A a;
a.set(11);
A& b=func (a);
cout<<b.get()<<endl;
b.set(33);
cout<<b.get()<<endl;
return 0;
}
首先声明,我刚学c++,大神轻喷!
这是我在范磊c++学习视频上看的一段代码,我用eclipse运行成功。
这里有个问题,我查的资料上写的是,“不能返回局部变量的引用”,我想说这段代码和这句话矛盾吗,如果矛盾的话,添加些什么代码能证明它有错? C++ 局部变量 对象
[解决办法]
func中的 one不是局部变量
[解决办法]
用了引用怎么还会是局部变量
[解决办法]
http://blog.csdn.net/mougaidong/article/details/7016656
[解决办法]
A& func( A& one)//one可是引用
{
return one;
}
