如何实现虚拟Inteface C

How to implement virtual inteface C++

本文关键字:虚拟 Inteface 实现 何实现      更新时间:2023-10-16

说我的接口定义为:

class MyInterface : public virtual ObjectInterface {
 public:
   virtual bool MyFunc() = 0;
};

然后,我有一个在标题文件中采用此接口的类:

class Concrete : public virtual MyInterface, public Object {
};

然后在实现文件中我有:

bool Concrete::MyFunc() {
    return false;
}

为什么我会出现错误:断线声明?我已经尝试在实现中添加constoverride,但要获得类似的错误。

您必须在类定义中声明所有成员功能。除非在定义中声明该函数,否则您不能在类定义后定义成员函数。

在这方面,成员函数是否覆盖了基类的(纯(虚拟函数没有区别。

在这种情况下:

class Concrete : public virtual MyInterface, public Object {
    bool MyFunc() override;
};