今天在做学校的C++作业时,遇到了一道题还挺经典的。
定义一个复数类Complex,使得下面的代码能够工作。(注:下列代码需放在主函数中。)
Complex c1(3,5); //用复数3+5i初始化c1
Complex c2=4.5; //用实数4.5初始化c2
c1.add(c2); //将c1与c2相加,结果保存在c1中
c1.show(); //将c1输出(这时的结果应该是7.5+5i)
【输入形式】
无
【输出形式】
7.5+5i
【样例输入】
【样例输出】
7.5+5i
【样例说明】
【评分标准】
#include <iostream>
#include <cmath>
using namespace std;
class Complex{
private:
float re, im;
public:
Complex(float r, float i=0){
re=r;
im=i;
}
void add(Complex com){
re=re+com.re;
im=im+com.im;
}
void show(){
cout<<re<<"+"<<im<<"i"<<endl;
}
};
int main()
{
Complex c1(3,5); //initialize c1 with complex 3+5i
Complex c2=4.5; //initialize c2 with 4.5
c1.add(c2); //c1+c2,result saved in c1
c1.show(); //print out c1.(result is 7.5+5i)
return 0;
}
hightlight 三处:
在定义变量时赋初值,可以有两种方式。1. a=1; 或者 a(1);
函数在定义时可以预先声明默认的形参值,调用时如果事先给出实参,则按实参的值,否则按预先声明的默认值,如Complex c2=4.5。有默认值的形参必须在无默认值形参后面,即Complex(float i=0, float r)不行。
另外: