C++ 要实现的接口类
我来自PHP,如果我没有在基于接口的类中实现方法,我希望得到一条错误消息C++ 要实现的接口类,c++,C++,我来自PHP,如果我没有在基于接口的类中实现方法,我希望得到一条错误消息 class Screen { public: virtual void drawScreen(); // Needs to be implemented by each subclass }; class LanguageScreen : public Screen { // I didn't define the void drawScreen(); }; 因此,我实际上想得到一条消
class Screen {
public:
virtual void drawScreen(); // Needs to be implemented by each subclass
};
class LanguageScreen : public Screen {
// I didn't define the void drawScreen();
};
因此,我实际上想得到一条消息,方法drawScreen()
在类LanguageScreen
中缺失,因为它实现了“接口”类Screen
。或者这与PHP不同?您想要的是一个纯虚拟函数
区别在于:
- 虚拟:我将实现它,但您可以覆盖它
- 纯虚拟:我将定义它,但您必须实现它
class Screen {
public:
virtual void drawScreen() = 0; // Needs to be implemented by each subclass
};
class LanguageScreen : public Screen {
// I didn't define the void drawScreen();
};
当您尝试并使用它时(我所说的“使用”是指直接从子类尝试并实例化一个对象):
评论不用于扩展讨论;这段对话已经结束。
error: cannot declare variable 'foo' to be of abstract type 'LanguageScreen'
note: because the following virtual functions are pure within 'LanguageScreen':
note: 'virtual void Screen::drawScreen()'