当前位置: 首页 > news >正文

5-26 Cpp学习笔记

1、如果子类实现了基类的函数,返回值、参数都相同,就覆盖了基类的函数。

2、使用作用域解析运算符来调用基类的函数。myDinner.Swim(); —— 调用子类的。myDinner.Fish::Swim(); —— 调用基类的(基类是Fish)

3、在子类中使用关键字using解除对Fish::Swim()的隐藏。

public:using Fish::Swim; // unhide all Swim() methods in class Fish

4、父类优于子类对象之前被实例化。成员变量优于构造函数之前被实例化。

递归到父类,每个类先实例化成员,再调用构造。但是一定是先找到父类,再进行上述过程。

5、私有继承:base类的public、protected,只能被Derived类使用,而无法通过Derived实例来使用。私有继承是:has a,不再是is a。(考虑将继承关系变成组合)

保护继承:也是has a。Derived类可以访问基类的public、protected。继承层次结构外,也不能通过子类实例访问基类的成员。限制在类内实现而不是授权给实例。在继承层次结构中,子类的子类能访问Base类的public、protected。

无论什么继承,子类都不能访问父类的私有成员。

6、避免切除问题(类的截断),不要按值传递参数,以指向基类的指针或者const引用的方式

void UseBase(Base input);
...
Derived obj;
UseBase(obj); // 产生截断

7、多重继承,不同类之间用“,”隔开

class Platypus: public Mammal, public Bird, public Reptile {...
};

8、final —— 不能用做基类,禁止被继承。

class CannotBeBass final {...
};
class Platypus final: public Mammal, public Bird, public Reptile {...
};

 作用于成员函数,禁止多态。

9、提问:通过使用using语句,子类能不能访问父类的private?

—— 《21天学通C++》

http://www.lryc.cn/news/354111.html

相关文章:

  • YOLOv8_pose的训练、验证、预测及导出[关键点检测实践篇]
  • 架构师必考题--软件系统质量属性
  • 使用AWR对电路进行交流仿真---以整流器仿真为例
  • 在UbuntuLinux系统上安装MySQL和使用
  • React 如何自定义 Hooks
  • 智能家居完结 -- 整体设计
  • 双指针用法练习题(2024/5/26)
  • Ansible02-Ansible Modules模块详解
  • 【Python特征工程系列】一文教你使用PCA进行特征分析与降维(案例+源码)
  • 【Linux】Ubuntu系统挂载NAS文件夹
  • 如何用ai打一场酣畅淋漓的数学建模比赛? 给考研加加分!
  • 深入浅出MySQL事务实现底层原理
  • SVM兵王问题
  • yolov5_obb
  • NextJs 初级篇 - 安装 | 路由 | 中间件
  • 变分自动编码器(VAE)深入理解与总结
  • Leetcode 剑指 Offer II 079.子集
  • Linux基础命令常见问题解决方案
  • LINQ(五) ——使用LINQ进行匿名对象初始化
  • 1小时从0开始搭建自己的直播平台(详细步骤)
  • Python打包篇-exe
  • 游戏找不到d3dcompiler_43.dll怎么办,教你5种可靠的修复方法
  • 如何使用多种算法解决LeetCode第135题——分发糖果问题
  • 泰拉瑞亚从零开始的开服教程
  • 【云原生】K8s管理工具--Kubectl详解(一)
  • 2024.5.26.python.exercise
  • 代码随想录-Day20
  • 揭秘C++ String容器:字符串操作的艺术
  • 【C++】牛客 ——DP36 abb
  • SpringBoot如何实现跨域?