尝试在命名空间中定义 class 时出现问题(分配不完整的类型)
Issues while trying to define a class within a namespace (allocation of incomplete type)
我正在尝试在 Ui 名称space 中的 Qt 中创建一个 class。
以我的名义 space 我已经有 2 个 class 是用 Qt Designer 制作的,使用它作为参考并没有帮助我解决我的问题。
在myclass.h
我放
namespace Ui {class MyClass};
class MyClass : public QObject
{Q_OBJECT
private:
Ui::MyClass* ui;
//body
}
然后在 myclass.cpp
中我输入
MyClass::MyClass(QObject *parent) :QObject(parent),ui (new Ui::MyClass)
//Here I have : allocation of incomplete type 'Ui::MyClass'
{
ui->setupUi(this);
//Here I have : member access into incomplete type Ui::MyClass'
}
我看到了 way of defining class in a namespace 但我没有找到解决我的错误的方法。
这看起来不像是 Qt 问题。这只是C++。要在命名空间中定义 class,只需将声明放在命名空间中:
namespace Ui
{
class MyClass : public QObject
{
Q_OBJECT
private:
MyClass* ui;
}; // MyClass
} // Ui
我正在尝试在 Ui 名称space 中的 Qt 中创建一个 class。 以我的名义 space 我已经有 2 个 class 是用 Qt Designer 制作的,使用它作为参考并没有帮助我解决我的问题。
在myclass.h
我放
namespace Ui {class MyClass};
class MyClass : public QObject
{Q_OBJECT
private:
Ui::MyClass* ui;
//body
}
然后在 myclass.cpp
中我输入
MyClass::MyClass(QObject *parent) :QObject(parent),ui (new Ui::MyClass)
//Here I have : allocation of incomplete type 'Ui::MyClass'
{
ui->setupUi(this);
//Here I have : member access into incomplete type Ui::MyClass'
}
我看到了 way of defining class in a namespace 但我没有找到解决我的错误的方法。
这看起来不像是 Qt 问题。这只是C++。要在命名空间中定义 class,只需将声明放在命名空间中:
namespace Ui
{
class MyClass : public QObject
{
Q_OBJECT
private:
MyClass* ui;
}; // MyClass
} // Ui