Interface in cpp
Interface in cpp
我想在cpp中创建接口,以便任何类实现该类,然后该类必须实现父类的函数。如果所有的函数都没有实现,那么它必须显示错误。
class parent { // interface class
public :
virtual void display();
}
class base : public parent {
void display(); // this method must be implemented in this class
}
使用纯虚成员函数:
virtual void display() = 0;
这使得类是抽象的(你不能创建它的实例),任何非抽象的派生类都必须实现这样的函数。
这里有一个维基百科的链接,有一个更正式的定义:http://en.wikipedia.org/wiki/Virtual_function Abstract_classes_and_pure_virtual_functions
就一个改动
class parent { // interface class
public :
virtual void display() = 0;
}
您可以使用抽象类(或纯虚拟类):
class AB {
public:
virtual void f() = 0;
};
抽象类可以用于java/c#中类似CPP的接口,尽管它们在编译器的角度不同。
相关文章:
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- Linux的Cpp上的计时器
- netcat command in c++
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- Difference in displaying cv2 Mat
- 命名空间中具有.h和.cpp文件的类
- log in cpp 14 and 17
- (公开简历)ASSERT: "false" in file qasciikey.cpp
- 编译 CPP 应用程序时出错。 "error: 'posix_memalign' was not declared in this scope"
- main.cpp中的错误:函数库中的函数"not declared in this scope",但实际上是
- zxing-我可以在哪里找到这些文件?zxing-all-in-in-in.cpp和zxing-all-in-in.h
- 如何使用 mysql cpp 连接器设置"IN"值
- UnsatisfiedLinkError for native cpp function in Android app
- MFC ASSERT in dllinit.cpp line 703 使用 Boost.Log(或 Boost.Thre
- Box2D crash in b2BlockAllocator.cpp
- "not in this scope" cpp 函数调用中的错误
- .cpp文件的组合框Scopes和Function in Scope在VS2008 sp2中不起作用.知道为什么这些组合
- 当从视觉工作室中的 IDL 文件生成 CPP 代码时,如何删除属性"in"的"const"?
- Interface in cpp