标题:关于函数返回值的问题,新手求高手指点
只看楼主
xlhcy2014
Rank: 2
等 级:论坛游民
帖 子:33
专家分:81
注 册:2014-2-6
结帖率:100%
 问题点数:0 回复次数:2 
关于函数返回值的问题,新手求高手指点
程序代码:
#include<iostream>
using namespace std;
class A
{
public:
    A(){cout<<"执行构造函数\n";}
    A(A&){cout<<"执行复制构造函数\n";}
    ~A(){cout<<"执行析构函数\n";}
    void print(){cout<<"x="<<x<<endl;}
    void set(int i){x=i;}
private:
    int x;
};

const A & func(const A & one);

int main()
{
A a;
//A b=func(a);             //这样写不行,提示说不能把 const class A转换成 class A
// const A c=func(a);        //这样写也不行,提示也说不能把 const class A转换成 class A,到底怎么回事?
return 0;
}
const A & func(const A &one)
{
return one;
}

//A b=func(a);             //这样写不行,提示说不能把 const class A转换成 class A
// const A c=func(a);        //那我这样写也不行,提示也说不能把 const class A转换成 class A,到底怎么回事?
我是用的是VC6.0的编程环境。
搜索更多相关主题的帖子: color 
2014-03-12 20:50
xlhcy2014
Rank: 2
等 级:论坛游民
帖 子:33
专家分:81
注 册:2014-2-6
得分:0 
自己弄明白了  。
应该写成
const A & c=func(a);
2014-03-12 21:09
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
其实你应该将
A(A&){cout<<"执行复制构造函数\n";}
改为
A(const A&){cout<<"执行复制构造函数\n";}

不知道你看的是什么破书
2014-03-13 11:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-428382-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.217216 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved