0

我有一个类的构造函数,它接受一个布尔值、一个指向数组的指针和字符串。

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

这是将其写入头文件的正确方法吗?由于“对“构造函数”和其他成员函数的未定义引用”,我的程序现在没有编译。

这也可能是什么原因造成的?我检查并在 main.cpp 我 #included "Class.h" 并定义了每个需要定义的成员函数,这些函数在我在 "Class.cpp" 中编写的 "Class.h" 中说明

4

2 回答 2

2

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

频道:

#include <string>

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

C.cpp:

#include "C.h"
C::C(bool b, int *theArray, std::string message)
{

}
于 2012-04-30T15:28:59.887 回答
0

未指定第一个参数的名称,但这可能不会导致您遇到的错误:

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

你可能想做这样的事情:

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

但是,在没有看到定义的情况下,我对此无话可说。仅通过查看声明很难预测还有什么问题。

于 2012-04-30T15:24:34.717 回答