构造函数的不同用法

作者在 2008-09-07 23:10:30 发布以下内容

代码一:带缺省参数的构造函数
#include<iostream.h>
#include<math.h>
class complex{
private:
double real;
double imag;
public:
complex(double r=0.0,double i=0.0)
{
real=r;
imag=i;
}
double realcomplex(){ return real;}
double imagcomplex(){ return imag;}
double abscomplex(){double t; t=real*real+imag*imag; return sprt(t);}
};


void main()
{
complex a(1.0 ,2.0);
cout<<"real of complex a="<<a.realcomplex()<<endl;
cout<<"real of complex a="<<a.realcomplex()<<endl;
cout<<"abs of complex a="<<a.abscomplex()<<endl;
complex b();
cout<<"real of complex b="<<b.realcomplex()<<endl;
cout<<"real of complex b="<<b.realcomplex()<<endl;
cout<<"abs of complex b="<<b.abscomplex()<<endl;
complex c(1.0);
cout<<"real of complex c="<<c.realcomplex()<<endl;
cout<<"real of complex c="<<c.realcomplex()<<endl;
cout<<"abs of complex c="<<c.abscomplex()<<endl;
return 0;
}
代码二:构造函数重载
#include<iostream.h>
#include<math.h>
class complex{
private:
double real;
double imag;
public:
complex(double r,double i)
{
real=r;
imag=i;
}
complex(){ real=0.0;  imag=0.0;}
double realcomplex(){ return real;}
double imagcomplex(){ return imag;}
double abscomplex(){double t; t=real*real+imag*imag; return sprt(t);}
};


void main()
{
complex a(1.0 ,2.0);
cout<<"real of complex a="<<a.realcomplex()<<endl;
cout<<"real of complex a="<<a.realcomplex()<<endl;
cout<<"abs of complex a="<<a.abscomplex()<<endl;
complex b();
cout<<"real of complex b="<<b.realcomplex()<<endl;
cout<<"real of complex b="<<b.realcomplex()<<endl;
cout<<"abs of complex b="<<b.abscomplex()<<endl;
return 0;
}


  可以看出两种不同的方法所体现的功能不同。代码一可能声明带一个参数的对象,而代码二不可以。
C++ | 阅读 3290 次
文章评论,共0条
游客请输入验证码
浏览78550次