| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 479 人关注过本帖
标题:c++类的问题
只看楼主 加入收藏
newCpp
Rank: 5Rank: 5
来 自:火星
等 级:职业侠客
威 望:3
帖 子:256
专家分:375
注 册:2009-8-17
结帖率:97.83%
收藏
已结贴  问题点数:16 回复次数:5 
c++类的问题
程序代码:
#include <iostream>
using namespace std;
class Complex                                     //定义Complex类
{public:
Complex(){real=0;imag=0;}            //定义构造函数
Complex(double r,double i){real=r;imag=i;}     //构造函数重载
Complex complex_add(Complex &c2);              //声明复数相加函数
void display();                                //声明输出函数
 private:
double real;                                   //实部
double imag;                                   //虚部
};

Complex Complex::complex_add(Complex &c2)
{Complex c;
c.real=real+c2.real;
c.imag=imag+c2.imag;
return c;}   

void Complex::display()                            //定义输出函数
{cout<<"("<<real<<","<<imag<<"i)"<<endl;}

int main()
{Complex c1(3,4),c2(5,-10),c3;                     //定义3个复数对象
c3=(c2);                            //调用复数相加函数
cout<<"c1="; c1.display();                        //输出c1的值
cout<<"c2="; c2.display();                        //输出c2的值
cout<<"c1+c2="; c3.display();                     //输出c3的值
return 0;
}

/*为什么这段代码里面的
Complex(){real=0;imag=0;}  这个构造函数这么重要,将他去掉程序就会出错
这个是为什么??   */
受不了,看半天没看出来这句话有啥用,但他却真的起着至关重要的作用!!
2009-10-14 09:08
flyingcloude
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:6
帖 子:598
专家分:1512
注 册:2008-1-13
收藏
得分:4 
Complex Complex::complex_add(Complex &c2)
{Complex c;
c.real=real+c2.real;
c.imag=imag+c2.imag;
return c;}

你这里调用了无参构造函数。
因为你已经有了构造函数,所以编译器不会再给你提供默认的构造函数

你能学会你想学会的任何东西,这不是你能不能学会的问题,而是你想不想学的问题
2009-10-14 09:43
最左边那个
Rank: 4
等 级:业余侠客
威 望:3
帖 子:97
专家分:201
注 册:2009-4-24
收藏
得分:4 
大概就是楼上说的那样了
你有两处调用了无参数构造函数

Complex Complex::complex_add(Complex &c2)
{Complex c;
c.real=real+c2.real;
c.imag=imag+c2.imag;
return c;}

Complex c1(3,4),c2(5,-10),c3;   
2009-10-14 10:05
jjg
Rank: 2
等 级:论坛游民
帖 子:67
专家分:42
注 册:2009-8-19
收藏
得分:4 
就是那样,那个c和那个c3
2009-10-14 10:30
mengfp
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:45
专家分:141
注 册:2009-8-5
收藏
得分:4 
定义了有参构造函数,编译器不会再给你提供默认的构造函数
2009-10-14 11:53
newCpp
Rank: 5Rank: 5
来 自:火星
等 级:职业侠客
威 望:3
帖 子:256
专家分:375
注 册:2009-8-17
收藏
得分:0 
原来是这样的啊!!
谢谢各位大大了!!

编程语言视频教程在线播放学习
2009-10-14 12:11
快速回复:c++类的问题
数据加载中...
 
   



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

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