这是我参与「第五届青训营 」伴学笔记创作活动的第6天
2.2.3 被隐藏的基类函数如何调用或者子类调用父类的同名函数和父类成员变量 ⭐⭐⭐⭐⭐
同名成员函数,即不管参数是否相同、返回值是否相同,只要函数名称相同,就是同名成员函数****
soldier.Person::attack()
【C++深度解析】33、子类定义父类同名的函数或变量_-出发-的博客-CSDN博客_被隐藏的基类函数如何调用或者子类调用父类的同名函数和父类成员变量
父类和子类不具有函数重载的关系,是哪个类别的对象,就调用谁的方法/属性
一个派生类构造函数的执行顺序如下:****
① 虚拟基类的构造函数(多个虚拟基类则按照继承的顺序执行构造函数)。
② 基类的构造函数(多个普通基类也按照继承的顺序执行构造函数)。
③ 类类型的成员对象的构造函数(按照初始化顺序)
④ 派生类自己的构造函数。
2.2.4 多态实现的三个条件、实现的原理 ⭐⭐⭐⭐⭐
2.2.5 对拷贝构造函数 ****深浅拷贝 ****的理解 拷贝构造函数作用及用途?什么时候需要自定义拷贝构造函数? ⭐⭐⭐
深拷贝 主要是指针问题
如果定义有参拷贝构造 , 则不再提供无参构造,会提供默认拷贝构造****
如果定义拷贝构造,则不再提供其他构造函数****
2.2.6析构函数可以抛出异常吗?为什么不能抛出异常?除了资源泄露,还有其他需考虑的因素吗? ⭐⭐⭐****
1. 如果析构函数抛出异常,则异常点之后的程序不会执行,如果析构函数在异常点之后执行了某些必要的动作比如释放某些资源,则这些动作不会执行,会造成诸如资源泄漏的问题。****
2. 通常异常发生时, c++ 的机制会调用已经构造对象的析构函数来释放资源,此时若析构函数本身也抛出异常,则前一个异常尚未处理,又有新的异常,会造成程序崩溃的问题。****