C++ 为什么我在不同的文件中找不到下面代码的构造函数匹配参数列表的实例?

C++ 为什么我在不同的文件中找不到下面代码的构造函数匹配参数列表的实例?,c++,class,C++,Class,客户端功能 void main() { using namespace std; double a = 4.0; double b = 5; COMPLEX::Complex cmplxone(4.0,5.0); } 复杂类 #ifndef Complex_HEADER_H_ #define Complex_HEADER_H_ #include <iostream> namespace COMPLEX { class Complex

客户端功能

void main()
{
    using namespace std;
    double a = 4.0;
    double b = 5;
    COMPLEX::Complex cmplxone(4.0,5.0);
}
复杂类

#ifndef Complex_HEADER_H_
#define Complex_HEADER_H_

#include <iostream>

namespace COMPLEX
{
    class Complex
    {
    public:
          enum MODE { RECT, POLAR };
    private:
//object consists of four parts
            double realpart; //user enters this either rectangular or polar
            double imaginarypart; //user enters this either rectangular or polar
            double angle;
            double magnitude;
            MODE mode;
//private functions
            void setangle(); 
            void setmag();
//          Complex topolar() const;
//          void torectangular();
//public functions
    public:
            Complex(); //Default constructor
            Complex(double, double, MODE);
#ifndef Complex_HEADER_H_
#定义复杂的标题_
#包括
命名空间复合体
{
阶级情结
{
公众:
枚举模式{RECT,POLAR};
私人:
//对象由四部分组成
double realpart;//用户输入矩形或极轴
double ImageAryPart;//用户输入矩形或环形
双角度;
双幅;
模式;
//私人职能
void setangle();
void setmag();
//复拓扑常数;
//无效为矩形();
//公共职能
公众:
Complex();//默认构造函数
复杂(双重,双重,模式);
我的复杂非默认构造函数有3个参数


当我定义一个对象:cmplxone(4.0,5.0)时,它表示构造函数的实例与第一个参数的参数列表不匹配。

您的构造函数只有3个参数,您只指定了2个

您必须创建一个接受2个参数的新构造函数,或者在方法调用中添加第三个参数

--编辑--

您可以使第三个参数为null,如果该参数为null,则使用默认值,否则使用该参数


另一个解决方案是创建一个新的构造函数,它接受两个双精度,并在该构造函数中创建和设置默认值。

我计划省略第三个参数,并构建一个方法,其中如果参数是ommited,则默认为构造函数定义中的特定值。这是不允许的吗?