C++ 的继承
#include <iostream> using namespace std; class Base { public: Base(); }; class derived :public Base { }; Base::Base() { cout << "This is base" << endl; } int main() { derived obj; return 0; }
#include <iostream> using namespace std; class Base { public: Base() { cout << "This is base" << endl; } }; class derived :public Base { }; int main() { derived obj; return 0; }
两段代码效果都是一样的,唯一区别就是构造函数的位置。 最后都是打印"This is a base"
考虑一组车辆。您需要为公交车,汽车和卡车创建类。对于这三个类,方法fuelAmount(),capacity(),applyBrakes()都将相同。如果我们创建这些类以避免继承,则必须在三个类的每一个中编写所有这些函数,如下图所示:
您可以清楚地看到,上述过程导致相同代码重复3次。这增加了错误和数据冗余的机会。为了避免这种情况,将使用继承。如果我们创建一个Vehicle类并在其中编写这三个函数,并从Vehicle类继承其余类,那么我们可以简单地避免数据重复并提高可重用性。请看下图,其中三个类是从车辆类 继承的:使用继承,我们必须仅一次编写函数,而不必编写三次函数,因为我们从基类(Vehicle)继承了其余三个类。
另附:一篇很好的文章: https://www.geeksforgeeks.org/inheritance-in-c/