具有公共基类的多个虚拟继承

时间:2013-02-28 15:27:34

标签: c++ interface virtual

我最近经历了一些代码,以了解有关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'

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

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

非常感谢:)

编辑:界面无关紧要,其他地方的解决方案。然而,答案有所帮助。

1 个答案:

答案 0 :(得分:0)

  

这是某个语法错误吗?

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

#include <QObject>

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

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

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