接口在cpp

时间:2011-08-07 17:53:40

标签: c++ inheritance interface

我想在cpp中创建接口,这样任何类实现该类,那么该类必须实现父类的函数。如果未实现所有功能,则必须显示错误。

class parent {   // interface class
   public :
      virtual void display();
}
class base : public parent {
    void display(); // this method must be implemented in this class 
}

请帮助我在c ++中进行这种类型的继承。

3 个答案:

答案 0 :(得分:9)

使用纯虚拟成员函数:

virtual void display() = 0;

这使得类抽象(你不能创建它的实例),任何非抽象派生类都必须实现这样的函数。

这是一个维基百科链接,其中包含更正式的定义: http://en.wikipedia.org/wiki/Virtual_function#Abstract_classes_and_pure_virtual_functions

答案 1 :(得分:7)

只需一次更改

class parent {   // interface class
   public :
      virtual void display() = 0;
}

这在C ++中称为纯虚函数。

答案 2 :(得分:0)

你可以使用抽象类(或纯虚拟类):

class AB {
public:
    virtual void f() = 0;
};

抽象类可以在cpp中使用,就像java / c#中的接口一样,尽管它们在编译器方面有所不同。