接口在cpp

yog*_*tel 3 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 
}
Run Code Online (Sandbox Code Playgroud)

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

Ril*_*ams 9

使用纯虚拟成员函数:

virtual void display() = 0;
Run Code Online (Sandbox Code Playgroud)

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

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

  • Nitpick,但派生类不需要实现纯虚方法,但如果它们不实现,那么它们也是抽象的. (3认同)

joh*_*ohn 7

只有一个变化

class parent {   // interface class
   public :
      virtual void display() = 0;
}
Run Code Online (Sandbox Code Playgroud)

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