| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 926 人关注过本帖
标题:C++初学者想请教一个的问题!麻烦各位大神帮下忙!
只看楼主 加入收藏
麦浪123
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-9-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
C++初学者想请教一个的问题!麻烦各位大神帮下忙!
/*定义算术运算的类,实现整数,小数的加法要求使用构造函数,析构函数且有结果输出,同时也要设计重载(下面是我写的代码,老是有问题,而且自己越改越混所以希望各位大神帮忙指点一下)*/
#include<iostream>
using namespace std;
class Reckon
{
public:
     Reckon(int Iisum)
     {  isum=Iisum; }
     Reckon(double Ffsum)
     {  fsum=Ffsum;}
            
    ~ Reckon(){cout<<"释放对象";}

     void Getisum(int x,int y)
     {    int isum=x+y;cout<<isum<<endl;}
     void Getfsum(double m,double n)
     {    double fsum=m+n;cout<<fsum<<endl;}
private:
    int isum=Iisum;
    float fsum=Ffsum;
};

int main()
{
    Reckon newReckon;
    newReckon.Getisum(1,2);
    newReckon.Getfsum(2.2,3.3);
    cout<<isum<<fsum;
    return 0;
}

/*思路:1定义类;2.(public)根据类建立构造函数(一个实现两个整数的和另一个实现两个小数的和)3.建立析构函数4.建立关于整数求和Iisum函数与小数求和Ffsum函数5.(private:)6.建立程序并执行
问题:1.整数求和Iisum函数与小数求和Ffsum函数的调用问题2.第6步由于之前存在两个构造函数(重载),因此到底该如何设计程序*/



/*定义一个求和的类,里面包含两个对象,1.整数求和(分为有参与无参)2.小数求和*/
/*注:1将同一个名字用于在不同类型上操作的函数称为重载,但在不同的非名字空间作用域里声明的函数不算是重载2.析构函数:释放资源且在每个对象销毁之前调用的函数(即完成对象初始化)
3.构造函数:属于类的一种特殊函数,其函数名与类名必须相同且没有返回值*/
搜索更多相关主题的帖子: include public double 而且 
2015-11-14 16:53
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:2 
楼主是想让程序两个数相加如果是整数就输出整数的结果,如果是小数点就输出浮点类型吧?
cout类输出的时候会自动判断呀
另外,楼主的代码可以编译嘛?

2015-11-14 23:06
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
收藏
得分:18 
[/code]#include<iostream>
using namespace std;
class Reckon
{
public:
     Reckon()
     {

     }
     Reckon(double Ffsum)
     {

     }
    ~Reckon(){cout<<"释放对象";}

     void Getisum(int x,int y)
     {    int isum=x+y;cout<<isum<<endl;}
     void Getfsum(double m,double n)
     {    double fsum=m+n;cout<<fsum<<endl;}
private:
    int isum;
    float fsum;
};

int main()
{
    Reckon newReckon;
    newReckon.Getisum(1,2);
    newReckon.Getfsum(2.2,3.3);
    return 0;
}[/code]
你这里就不用做重载,就像我改过的这个。真正重载应该是这样:
程序代码:
#include<iostream>
using namespace std;
class Reckon
{
public:
     Reckon(int x,int y):ix_(x),iy_(y)
     {
        cout<<"int型参数构造函数\n";
     }
     Reckon(double x,double y):dx_(x),dy_(y)
     {
        cout<<"double型参数重载\n";
     }
    ~Reckon(){cout<<"释放对象\n";}

     void Getisum()
     {    isum=ix_+iy_;cout<<isum<<endl;}
     void Getfsum()
     {
        fsum=dx_+dy_;
        cout<<fsum<<endl;
     }
private:
    int ix_,iy_;
    double dx_,dy_;
    double fsum;
    int isum;
};

int main()
{
    Reckon newReckon_int(4,5);
    newReckon_int.Getisum();
    Reckon newReckon_dou(2.4,3.8);
    newReckon_dou.Getfsum();
    return 0;
}


[此贴子已经被作者于2015-11-15 15:13编辑过]

2015-11-15 15:09
麦浪123
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-9-21
收藏
得分:0 
回复 3楼 wengbin
谢谢!
2015-11-15 22:17
麦浪123
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-9-21
收藏
得分:0 
回复 3楼 wengbin
但是今天,我同学告诉我,把调用函数放在类外或许更好一些,然后我修改如下(之前编译时我书写格式还是有很多问题导致编译一堆错误,不过还是要说声谢谢)

#include <iostream>

using namespace std;

class Caculation
{
public:
    Caculation();
    ~Caculation();
    void doAdd(int x, int y);
    void doAdd(double x, double y);
    void showSum();
private:
    double m_sum;
};

Caculation::Caculation()
{
    cout<<"构造函数被调用了."<<endl;
}

Caculation::~Caculation()
{
    cout<<"析构函数被调用了."<<endl;
}

void Caculation::doAdd(int x, int y)
{
    m_sum = (int)(x + y);
}

void Caculation::doAdd(double x, double y)
{
    m_sum = x + y;
}

void Caculation::showSum()
{
    cout<<m_sum<<endl;
}

int main()
{
    Caculation cal;
    cal.doAdd(1,2);
    cal.showSum();
    return 0;
}
2015-11-15 22:24
chengxi123
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-11-29
收藏
得分:0 
都可以,
2015-11-29 15:33
快速回复:C++初学者想请教一个的问题!麻烦各位大神帮下忙!
数据加载中...
 
   



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

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