我最近经历了一些代码,以了解有关C ++编程的更多信息,而且我面对某种有点奇怪的事情。
我得到了一个班级声明:
class myClass : public QObject, public virtual myObject::myOtherObject::myInterface {
Q_OBJECT
public: [...]
}
编译时出现以下错误:
error: expected class-name before '{' token
error: myInterface is not a member of 'myObject::myOtherObject'
这是某个语法错误吗?我无法弄清楚问题是什么......
你碰巧知道什么是解决方案吗?
非常感谢:)
编辑:界面无关紧要,其他地方的解决方案。然而,答案有所帮助。答案 0 :(得分:0)
这是某个语法错误吗?
不,您的代码在语法上是正确的。以下编译正常,没有错误:
#include <QObject>
namespace myObject {
namespace myOtherObject {
class myInterface {
};
}
}
class myClass : public QObject, public virtual myObject::myOtherObject::myInterface {
Q_OBJECT
public:
};
因此,您需要检查myInterface
类的定义位置,并确保它已正确包含在内。