C++ 复数加法与复制构造函数的使用

C++ 复数加法与复制构造函数的使用,c++,constructor,complex-numbers,C++,Constructor,Complex Numbers,编译器认为复杂c2(2,3)正在尝试调用“()”运算符。您尚未定义接受两个整数的构造函数。您需要为复杂类定义两个构造函数来解决它: Error:C:\Users\Santosh\Documents\cplusplus\complex_addition.cpp|48|error: no matching function for call to 'complex::complex()'| 该值从未初始化,因为没有为将2和3分别放入real和imag中提供构造函数。类对象c1将需要complex(

编译器认为
复杂c2(2,3)
正在尝试调用“()”运算符。您尚未定义接受两个整数的构造函数。

您需要为
复杂类定义两个构造函数来解决它:

Error:C:\Users\Santosh\Documents\cplusplus\complex_addition.cpp|48|error: no matching function for call to 'complex::complex()'|
该值从未初始化,因为没有为将2和3分别放入
real
imag
中提供构造函数。类对象
c1
将需要
complex(){}
构造函数。

这对我很有效

complex() {}
complex(float rl, float im) : real(rl), imag(im) {}
#包括
使用名称空间std;
阶级情结
{
浮点实数,imag;
公众:
复合物()
{

通过创建另一个参数化构造函数来完成。谢谢。@user8626250这两个构造函数都是正确运行程序所必需的。我想您会发现OP缺少一个默认构造函数。
complex() {}
complex(float rl, float im) : real(rl), imag(im) {}
#include<iostream>
using namespace std;
class complex
{
    float real,imag;
public:
    complex()
    {
        cout<<"default constructor"<<endl;
        real=0;
        imag=0;
    }
   complex(float r, float i)

    {
    cout<<"parameterized construction";
    real=r;
    imag=i;
    }
    complex(complex &c)
    {
        cout<<"copy constructor"<<endl;
        real=c.real;
        imag=c.imag;

    }
    void getData()
    {
        cout<<"the complex number are: "<<real<<"+"<<imag<<"i"<<endl;

    }
    void showData()
    {
        cout<<"the sum is: ";
        cout<<real<<"+"<<imag<<"i"<<endl;
    }

    complex addition(complex x,complex y)
    {
        complex temp;
        temp.real=x.real+y.real;
        temp.imag=x.imag+x.imag;
        return temp;

    }
};



int main()
{
    complex c2(2,3),c3(c2),c1;
    c2.getData();
    c3.getData();
    c1=c1.addition(c2,c3);
    c1.showData();


    return 0;

}