如何在C++中声明接口?纯虚函数与抽象类
大家好!我最近从Java开始学习C++,在声明接口时遇到了问题。在Java中,我习惯写 `interface MyInterface { void doSomething(); }`,任何类都可以实现它。
但在C++中,我找不到与 `interface` 关键字对应的东西。我尝试用普通虚函数创建一个类,但如果函数不是纯虚的,编译器会报错说无法实例化该类。这是我写的代码:
```cpp
class IShape {
public:
virtual double area(); // 错误:不是纯虚函数
virtual void draw(); // 同样错误
};
```
后来我添加了 `= 0`,代码编译通过了:
```cpp
class IShape {
public:
virtual double area() = 0;
virtual void draw() = 0;
};
```
但我不确定这是否是声明接口的正确方式。是否需要将析构函数设为虚函数?多重继承怎么办?如果我希望接口中某些方法有通用实现,又该如何处理?
请