纯接口是指满足下面要求的类:
- 只有纯虚函数和静态函数。
【注】为保证接口类的所有实现可被正确销毁,必须为它声明虚析构函数,且析构函数不能是纯虚函数。 - 没有非静态数据成员;
- 没有定义任何构造函数。如果有,则该构造函数不含参数,且为
protected
; - 如果是子类,也只能继承满足上诉条件并以
Interface
为后缀的类。
【注】接口类一般要求以Interface
为后缀,但这不是必须的。以Interface
为后缀可令他人知道不能为该接口类增加实现函数或非静态数据成员。不过随之而来的问题是,Interface
后缀增加了类名长度,为阅读和理解带来不变。同时,接口特性作为实现细节不应该暴露给客户。
只有在满足上诉需要时,类才以 Interface
结尾,但反过来,满足上述需要的类未必以 Interface
结尾。
接口类不能被直接实例化,因为它声明了纯虚函数。
网友评论