Complex 类

#include<iostream>
#include<math.h>
using namespace std;
class Complex {
public:
    Complex(double a, double b);
    Complex(double a) {
        real = a;
        i = 0;
    }
    Complex(Complex&p);
    void add(Complex a);
    void show();
    double mod();
private:
    double real;
    double i;
};
Complex::Complex(double a, double b) {
    real = a;
    i = b;
}
Complex::Complex(Complex&p) {
    real = p.real;
    i = p.i;
}
void Complex::add(Complex a) {
    real = real + a.real;
    i = i + a.i;
}
void Complex::show() {
    cout << real << ‘+‘ << i << ‘i‘ << endl;
}
double Complex::mod()
{
    double a;
    a = sqrt(real*real + i * i);
    return a;
}
int main()
{
    Complex c1(3, 5);
    Complex c2(4.5);
    Complex c3(c1);
    c1.add(c2);
    c1.show();
    cout << c1.mod()<<endl;
    system("pause");
    return 0;
}

课堂上写的大体上差不多。就是漏了一个求模函数。

宿舍里写的是时候一开始很顺但是到最后的时候就出问题了。一开始我的默认构造函数是这样的

Complex(double a,double b=0) {
real=a;
i=b;
}

但是Complex c2(4.5)一直报错。

后来只好把代码改成现在的这样就通过了。

但我就想知道为什么一开始那个错误的不行。

原文地址:https://www.cnblogs.com/jiyuanxiangzhouziying/p/10630503.html

时间: 2024-11-13 06:44:52

Complex 类的相关文章

Complex 类的基本函数

//  Complex 类的基本函数 #include<iostream> using namespace std; class Complex { public : Complex(double real=1.0,double image=2.0)//构造函数  (有参) 调用2次拷贝构造 { _real=real; _image=image; } Complex()  //构造函数  (无参) {       _real=1.0;       _image=2.0; } 亦可写成: Com

std::complex类conj

std::conj(std::complex) std::conj(std::complex)用来计算complex的共轭部分,通过相反虚部的标识. example: 1 #include <iostream> 2 #include <complex> 3 4 int main() 5 { 6 std::complex<double> z(1,2); 7 std::cout << "The conjugate of " <<

设计、定义并实现Complex类

实验结论 Complex类 Code: #include<iostream> #include<cmath> #include<cstdlib> using namespace std; class Complex { public: Complex(double newr = 0, double newi = 0); Complex(Complex &c1); void add(Complex c1); void show(); double mod(); p

Complex 类的实现

编写复数类Complex,使得代码能够工作: 代码: #include<iostream> #include<cmath> using namespace std; class Complex{ public: Complex(double newrl=0,double newim=0) ;//默认值不能丢. Complex(Complex &c2); void add(Complex c2); void show(); double qumo(); private: do

课堂小练习: 设计、定义并实现complex类

#include<iostream> #include<cmath> using namespace std; class complex{ public: complex(double real0=0,double imaginary0=0); complex(complex &p); void add(complex); void qiumo(); void show(); private: double real; double imaginary; }; compl

complex类

#include<iostream> #include<cmath> using namespace std; class complex{ public: complex(double a,double b=0); complex(complex &p); void show(); void madd(complex q); double mod(); private: double zhen; double xu; }; complex::complex(double

课堂小练习(complex类)

定义一个复数类Complex,使得下面的代码能够工作: Complex c1(3,5);     //用复数3+5i初始化c1: Compex c2=4.5;      //用实数4.5初始化c2 c1.add(c2);              //将c1与c2相加,结果保存在c1中 c1.show();               //将c1输出(这时的结果应该是7.5+5i) cout<<c1.mod()      //c1.mod()对c1进行取模运算 1 #include <i

complex类 序列化时 IsRequired = true 问题

最近项目使用xpo作为数据底层, 需要在webservice中通信(传参和返回)直接使用xpo,则需要改造xpo类,自己实现IXmlSerializable接口. webservice客户端引用后, 调用时候发对象中的字符串类型的值不能为空,因为引用webservice生成的类字段上加了一个属性 [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, IsRequired=true)] 导致字段不能为空,

Complex类的实现

#include<iostream> #include<cmath> using namespace std; class complex{ public: complex(double a,double b=0); complex(complex &p); void show(); void madd(complex q); double mod(); private: double real; double imag; }; complex::complex(doubl