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

类与对象-继承-继承语法

继承语法

#include<iostream>
using namespace std;class Base1
{
public:Base1(){m_A = 100;}int m_A;
};
class Base2
{
public:Base2(){m_B = 200;}int m_B;
};//子类需要继承Base1和Base2
class Son :public Base1, public Base2
{
public:Son(){m_C = 300;m_D = 400;}int m_C;int m_D;
};
void test01()
{Son s;cout << "sizeof Son = " << sizeof(s) << endl;//16cout << "m_A = " << s.Base1::m_A << endl;cout << "m_B = " << s.Base2::m_B << endl;
}
int main() {test01();return 0;
}//                          _ooOoo_                               //
//                         o8888888o                              //
//                         88" . "88                              //
//                         (| ^_^ |)                              //
//                         O\  =  /O                              //
//                      ____/`---'\____                           //
//                    .'  \\|     |//  `.                         //
//                   /  \\|||  :  |||//  \                        //
//                  /  _||||| -:- |||||-  \                       //
//                  |   | \\\  -  /// |   |                       //
//                  | \_|  ''\---/''  |   |                       //
//                  \  .-\__  `-`  ___/-. /                       //
//                ___`. .'  /--.--\  `. . ___                     //
//              ."" '<  `.___\_<|>_/___.'  >'"".                  //
//            | | :  `- \`.;`\ _ /`;.`/ - ` : | |                 //
//            \  \ `-.   \_ __\ /__ _/   .-` /  /                 //
//      ========`-.____`-.___\_____/___.-`____.-'========         //
//                           `=---='                              //
//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        //
//         佛祖保佑       永无BUG     永不修改                  //

多继承的基本语法及知识点

基本语法

class Base1 {// Base1 类的定义
};class Base2 {// Base2 类的定义
};class Derived : access-specifier Base1, access-specifier Base2 {// Derived 类的定义,同时继承自 Base1 和 Base2
};
  • Base1Base2 是两个基类,分别定义了它们自己的成员变量和成员函数。
  • Derived 是派生类,通过 access-specifier(可以是 publicprotectedprivate)指定每个基类的继承方式。

继承方式

  1. public 继承
  • 使用 public 继承时,基类的 publicprotected 成员在派生类中保持相应的访问权限。
  • 基类的 private 成员在派生类中不可访问。
  1. protected 继承
  • 使用 protected 继承时,基类的 publicprotected 成员在派生类中变为 protected 成员。
  • 基类的 private 成员在派生类中不可访问。
  1. private 继承
  • 使用 private 继承时,基类的 publicprotected 成员在派生类中变为 private 成员。
  • 基类的 private 成员在派生类中不可访问。

名称冲突解决

  • 如果多个基类中有相同的成员名称,可能会引起名称冲突。可以使用作用域解析运算符 :: 来明确指定访问哪个基类的成员。

调用基类构造函数

  • 派生类需要负责调用每个基类的构造函数来初始化基类的部分。
  • 构造函数的调用顺序是按照基类在派生类中声明的顺序,与初始化列表中的顺序无关。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • idea中使用maven
  • react基础样式控制
  • Dav_笔记9:Using Indexes and Clusters之1
  • ROS2 humble使用nav2_map_server保存地图报错:Failed to spin map subscription
  • qt 下拉列表变更事件
  • leetcode-383.赎金信
  • 阿里ChatSDK使用,开箱即用聊天框
  • 前端面试题日常练-day92 【Less】
  • JVM OutOfMemoryError异常模拟
  • C语言经典程序100案例
  • 编程从零基础到进阶(更新中)
  • Redis 数据类型
  • 对服务器进行基本了解(二)
  • 如何制定高效的媒体公关解决方案
  • 网络抓包知识
  • SegmentFault for Android 3.0 发布
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 【EOS】Cleos基础
  • Android 控件背景颜色处理
  • centos安装java运行环境jdk+tomcat
  • css布局,左右固定中间自适应实现
  • HTTP中GET与POST的区别 99%的错误认识
  • Kibana配置logstash,报表一体化
  • Swift 中的尾递归和蹦床
  • SwizzleMethod 黑魔法
  • V4L2视频输入框架概述
  • VUE es6技巧写法(持续更新中~~~)
  • Vue 动态创建 component
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 王永庆:技术创新改变教育未来
  • 阿里云服务器购买完整流程
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • "无招胜有招"nbsp;史上最全的互…
  • # 利刃出鞘_Tomcat 核心原理解析(八)-- Tomcat 集群
  • # 移动硬盘误操作制作为启动盘数据恢复问题
  • #Datawhale AI夏令营第4期#AIGC方向 文生图 Task2
  • #Z2294. 打印树的直径
  • $(selector).each()和$.each()的区别
  • (2)MFC+openGL单文档框架glFrame
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (二)斐波那契Fabonacci函数
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (学习日记)2024.02.29:UCOSIII第二节
  • (转)Google的Objective-C编码规范
  • .Net 6.0--通用帮助类--FileHelper
  • .Net Core 笔试1
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • @EnableWebSecurity 注解的用途及适用场景
  • @vueup/vue-quill使用quill-better-table报moduleClass is not a constructor