我想在cpp中创建接口,这样任何类实现该类,那么该类必须实现父类的函数。如果未实现所有功能,则必须显示错误。
class parent { // interface class
public :
virtual void display();
}
class base : public parent {
void display(); // this method must be implemented in this class
}
请帮助我在c ++中进行这种类型的继承。
答案 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#中的接口一样,尽管它们在编译器方面有所不同。