| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3593 人关注过本帖, 1 人收藏
标题:关于复制构造函数的问题
只看楼主 加入收藏
八半个桑
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2016-4-15
结帖率:60%
收藏(1)
已结贴  问题点数:10 回复次数:3 
关于复制构造函数的问题
程序代码:
#include<iostream>
using namespace std;
class c
{
public:
    c(float _r){m_flr=_r;}
    c(c &p){m_flr=p.m_flr;}
    ~c(){}
    float getArea();
private:
    float m_flr;
};
float c::getArea()
{
    return 3.14*m_flr*m_flr;
}
void main()
{
    c r(3);
    cout << r.getArea() << endl;
    c r2(r);
    
    cout << r2.getArea() << endl;
}

这是一个计算圆的面积类,如何利用复制构造函数在第一个对象(r)的值的基础上加上3再传递给第二个对象(r2)?   
c r2(r+3) 这样可以吗?
搜索更多相关主题的帖子: return color 
2016-04-26 18:02
仰望星空的
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:50
专家分:248
注 册:2015-9-28
收藏
得分:5 
按照你的写法,需要重载个+号运算符,要不然没法类对象与float相加吧,
坐等大神完成这一操作,学习中~
2016-04-27 09:15
alice_usnet
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:18
帖 子:370
专家分:2020
注 册:2016-3-7
收藏
得分:5 
同意2楼+1
程序代码:
#include<iostream>
using namespace std;
class c
{
public:
    c(float _r){m_flr=_r;}
    c(c &p){m_flr=p.m_flr;}
    c operator+(int n) { m_flr+=n; return *this; }
    ~c(){}
    float getArea();
private:
    float m_flr;
};
float c::getArea()
{
    return 3.14*m_flr*m_flr;
}
void main()
{
    c r(3);
    cout << r.getArea() << endl;
    c r2(r+3);
    
    cout << r2.getArea() << endl;
}

未佩好剑,转身便已是江湖
2016-04-27 13:10
八半个桑
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2016-4-15
收藏
得分:0 
回复 3楼 alice_usnet
如何重载“+”运算符?
2016-04-27 17:39
快速回复:关于复制构造函数的问题
数据加载中...
 
   



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

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