C++ 构造函数参数问题C++;

C++ 构造函数参数问题C++;,c++,constructor,C++,Constructor,我有一个类的构造函数,它接受bool、数组指针和字符串 TheConstructor(bool theBool=true, int *theArray=0, std::string message="0"); 这是写入头文件的正确方法吗?我的程序现在没有编译,因为“未定义对“构造函数”和其他成员函数的引用” 是什么导致了这一切?我检查并在main.cpp中包含了“Class.h”,并定义了“Class.h”中所述的每个需要定义的memberwise函数,我在“Class.cpp”中写道,第一个

我有一个类的构造函数,它接受bool、数组指针和字符串

TheConstructor(bool theBool=true, int *theArray=0, std::string message="0");
这是写入头文件的正确方法吗?我的程序现在没有编译,因为“未定义对“构造函数”和其他成员函数的引用”


是什么导致了这一切?我检查并在main.cpp中包含了“Class.h”,并定义了“Class.h”中所述的每个需要定义的memberwise函数,我在“Class.cpp”中写道,第一个参数的名称没有指定,但这可能不会导致您遇到的错误:

TheConstructor(bool=0, int *theArray=0, std::string message="0");
您可能希望执行以下操作:

TheConstructor(bool flag=0, int *theArray=0, std::string message="0");

然而,在没有看到定义的情况下,我对它没有什么可说的了。通过简单地查看声明,很难预测还有什么可能是错误的。

我希望您没有将类命名为构造函数():如果您有类
C
,您几乎可以像以前一样声明它的构造函数-您忘了输入
bool
参数的名称:

C.h:


你的孩子没有名字。但是错误表明您没有在任何地方定义构造函数。我的意思是,你给出的例子只是声明,而不是定义。你能展示你的类声明和定义吗?“请你出示一些真实的代码好吗?我认为您的实际类没有命名为构造函数,对不起,我忘了添加它。事实上,它的定义是正确的。在这种情况下,很难猜出什么是错的。您的定义在cpp文件中是什么样子的?在原型中,参数不需要名称。C.cpp中的分号是多余的。@Linoliumz谢谢。打字错误编辑。
#include <string>

class C
{
public:    
    C(bool b = 0, int *theArray = 0, std::string message = "0");
};
#include "C.h"
C::C(bool b, int *theArray, std::string message)
{

}