class Cbeckhoff_frontendDlg : public CDialogEx
{
// construction
public:
Cbeckhoff_frontendDlg(CWnd* pParent = NULL);
//...
//this is the member object I want to create
Modul test;
};
我的.cpp看起来像这样:
Cbeckhoff_frontendDlg::Cbeckhoff_frontendDlg(CWnd* pParent /*=NULL*/)
: CDialogEx(Cbeckhoff_frontendDlg::IDD, pParent)
{
//..
};
//and should look like this:
Cbeckhoff_frontendDlg::Cbeckhoff_frontendDlg(CWnd* pParent /*=NULL*/)
: CDialogEx(Cbeckhoff_frontendDlg::IDD, pParent),test()
{
//..
};
我搞砸了我试图在这里发布的前一个测试案例,对此我很抱歉。我想我不太明白那里发生了什么。我假设Cbeckhoff_frontendDlg启动了pialntial CDialogEx-构造函数,但我想开始自己的构造函数测试。这可能吗?
答案 0 :(得分:0)
如果Modul
有默认构造函数而您不想使用其他构造函数,则以下内容已经足够了:
Cbeckhoff_frontendDlg::Cbeckhoff_frontendDlg(CWnd* pParent /*=NULL*/)
: CDialogEx(Cbeckhoff_frontendDlg::IDD, pParent) {}
如果你想使用另一个构造函数(例如,一个接收整数的构造函数),你可以这样做:
Cbeckhoff_frontendDlg::Cbeckhoff_frontendDlg(CWnd* pParent /*=NULL*/)
: CDialogEx(Cbeckhoff_frontendDlg::IDD, pParent), test(some_integer) {}
编辑:至于分号,你不应该在方法体后使用分号:
class Foo {
Foo() {
// ...
} // <- no semicolon
void bar() {
// ...
} // <- no semicolon
}; // <- at the end of a class you need a semicolon
答案 1 :(得分:0)
如果我理解你的代码正确,你的Modul类有一个构造函数,它接受一个Cbeckhoff_frontendDlg *的参数,它有一个Modul类型的成员。 你有没有在你的Modul.h文件中声明Cbeckhoff_frontendDlg类?
编辑
再看一下你的代码,我想你还没有看到一些错误。你说主类没有编译,因为modul是未定义的。我原本以为模块中也会出现编译错误,说Cbeckhoff_frontendDlg没有定义。因此,您可能没有编译Modul文件, OR 'Modul.h'文件没有备用构造函数的声明。
如果我是你,我会仔细检查你认为编译的所有东西是通过干净的构建来编译的。