如何在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。