Avatar ·

如何在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; }; ``` 但我不确定这是否是声明接口的正确方式。是否需要将析构函数设为虚函数?多重继承怎么办?如果我希望接口中某些方法有通用实现,又该如何处理? 请