VC++ 里面引用的一点小疑问
测试:
classtest1
{
public:
string& gs()
{
string* a=new string("xxxxxx");
cout<<(int)a<<endl;//输出地址1
return (*a);
}
};
int _tmain(int argc, _TCHAR* argv[])
{
test1* aa=new test1();
string bb;
bb=aa->gs();
string* cc=&bb;//按照我的理解 cc就是上面的地址1啊????
cout<<(int)cc<<endl;//但是不相等
system("pause");
return 0;
}
为什么???? 完毕.
[解决办法]
string& gs()函数返回的是引用,但是函数调用结束后临时变量a释放了
怎么能用来引用呢?
[解决办法]
bb明明的新的变量啊
你是把a的内容赋给了bb啊
return(*a);
这句和地址已经没关系了