由于 C++ 缺少 Java 和 C# 的 interface
特性,那么在 C++ 类中模拟接口(interface)的首选方法是什么?我的猜测是抽象类的多重继承。
在内存开销/性能方面有什么影响?
此类模拟接口(interface)是否有任何命名约定,例如SerializableInterface
?
最佳答案
由于 C++ 与 C# 和 Java 不同,具有多重继承,是的,您可以创建一系列抽象类。
至于约定,由你决定;但是,我喜欢在类名前加上 I。
class IStringNotifier
{
public:
virtual void sendMessage(std::string &strMessage) = 0;
virtual ~IStringNotifier() { }
};
在 C# 和 Java 之间进行比较时,性能无需担心。基本上,您将只需要为您的函数或 vtable 提供一个查找表,就像任何类型的虚拟方法继承一样。
关于c++ - 如何在 C++ 中模拟接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1216750/