我正在从C语言转向C++,当然也包括面向对象编程(OOP),这比我预期的更加困难。难点不在于理解类和继承的核心机制,而在于如何使用它们。我已经阅读了有关设计模式的书籍,但它们只展示了技术,模糊地描述了为什么应该使用这些技术。我真的很难找到抽象类的用途。例如下面的代码:
class baseClass {
public:
virtual void func1() = 0;
virtual void func2() = 0;
};
class inhClass1 : baseClass {
public:
void func1();
void func2();
};
class inhClass2 : baseClass{
public:
void func1();
void func2();
};
int main() {}
我经常在设计书籍中看到这样设置抽象类的例子。我知道通过这种配置,继承类可以访问基类的公共成员。我知道虚函数是继承类的占位符。问题是我仍然不明白这有什么用处。我试图将其与函数重载进行比较,但我并没有看到实际应用场景。
我真正想要的是有人给出最简单的例子来说明抽象类为什么实际上很有用,并且是解决某些情况下的最佳方案。别误会,我并不是说没有好答案。我只是不明白如何正确使用它们。