0

我最近浏览了一些代码以了解更多关于 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'

这是某个地方的语法错误吗?我无法弄清楚是什么问题......

你碰巧知道什么是解决方案吗?

非常感谢 :)

编辑:界面无关紧要,其他地方的解决方案。尽管如此,答案还是有帮助的。

4

1 回答 1

0

这是某个地方的语法错误吗?

不,您的代码在语法上是正确的。以下编译正常,没有错误:

#include <QObject>

namespace myObject {
  namespace myOtherObject {
    class myInterface {
    };
  }
}

class myClass : public QObject, public virtual myObject::myOtherObject::myInterface {
    Q_OBJECT
    public:
};

因此,您需要检查您的myInterface类的定义位置并确保它被正确包含。

于 2013-02-28T15:32:07.637 回答