C++继承

时间:2021-08-04
本文章向大家介绍C++继承,主要包括C++继承使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

今天在菜鸟教程上学习了C++的继承,有一点收获。
首先,是概念的学习。被继承的类叫做基类,继承的类叫做派生类,使用语法是:
class Derivation:Access-Specifier Base{};
Access-Specifier是访问修饰符,分为private,protected和public,默认是private。
实际编程中,遇到的第一个问题为:XX does not have any field named 'YY';这个问题发生在用派生类的构造方法的初始化列表去初始化基类的成员,在网上搜了一下原因,发现编译器对初始化列表和构造方法的执行顺序为:基类的初始化列表->基类的构造方法->派生类的初始化列表->派生类的构造方法。所以很可能是编译器不允许对变量进行二次初始化,为了解决这个问题,就没有使用初始化列表,而是在派生类的构造函数中对基类的成员变量赋值。整个过程可以看作是首先由基类对这些变量进行了初始化,赋了一个默认的初始值,然后再由派生类来对其赋值。
第二个问题为:error of deleted function,这个问题是我在创建派生类后,没有加含参的构造函数,因为我以为创建的派生类对象可以由基类的含参构造函数来初始化。实际上,派生类不继承基类的构造函数、拷贝构造函数、析构函数、重载运算符和友元函数。因此,需要显示地在派生类中添加含参构造函数。

原文地址:https://www.cnblogs.com/starkly/p/15098111.html