Avatar ·

如何在C++中声明接口?(纯虚函数和抽象类)

你好!我刚开始在Java之后学习C++,对于缺少像Java或C#中那样的`interface`关键字感到非常困惑。在Java中,我习惯这样做: ```java public interface Drawable { void draw(); void resize(int width, int height); } ``` 而在C++中,我找不到直接的对应物。我知道C++中有带纯虚函数的抽象类,但我不确定如何正确声明和使用它们。 例如,我尝试写了这样的代码: ```cpp class Drawable { public: virtual void draw() = 0; virtual void resize(int width, int height) = 0; }; ``` 但我有一些疑问: 1. 是否需要添加virtual destructor?如果需要,它应该是纯虚的吗? 2. 是否需要防止此类对象的复制? 3. 如何正确继承此类并override方法? 4. 在C++中声明接口是否有任何“best practices”? 我听说过multiple inheritance和diamond problem。