C++抽象类或接口类
C++ abstract or interface classes?
我发现了这个问题:什么时候使用抽象类或接口?。但对Java
和C++
的要求不同。有多重遗传,所以答案可能也不一样。
我什么时候应该使用接口类?
如果我使用PIMPL
习惯用法,那么只有一个成员我只需要转发声明。如果我把私有函数移到PIMPL
类中,那么在abstract
类中只有public
和protected
函数。因此,像这样的abstract
类和*interface
类之间的区别在于,在interface
类中,应该只有纯虚拟函数。与前面提到的相比,它有什么优势吗?
当类层次结构可以被视为泛型时,使用接口类;可以在不影响调用类的情况下交换子类。
例如,有一个std::istream
类。如果需要std::istream
,任何函数或方法都可以将输入视为泛型。因此,可以将cin
或ifstream
传递给函数。接口是一致的。
当您想从接口隐藏实现时,请使用PIMPL习惯用法。用于库类。
相关文章:
- 抽象类/接口中的空方法是否被认为是一种好的做法?
- 可以模板抽象类接口
- C 分开的抽象类(接口),用于某些通用读取和/或写入访问
- C++中的抽象类与接口
- 我可以在c++接口(抽象类)中包含什么
- 不可变接口的抽象类
- 如何在C++中编程到接口/抽象类
- 接口与抽象类C++
- 抽象类/接口C++
- 防止在C++中对抽象类接口进行子类化
- 接口与抽象类?(一般OOP)
- 接口、协议和抽象类
- C#对导出抽象类/接口的C++DLL函数的消耗
- 它是抽象类还是纯虚拟(接口)
- 抽象类作为接口,不带虚函数表
- 接口(抽象类)设计的最佳方法
- 接口/抽象类应该只包含纯虚拟方法
- 来自接口(抽象类)的多重继承
- c++强制操作符==重载接口抽象类
- 回调(std::function/std::bind)与接口(抽象类)的优缺点