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

c++类和对象-继承

参考链接:46 类和对象-继承-继承方式_哔哩哔哩_bilibili

1.概述

作用:提高代码复用率,多个子类和父类有相同之处,又有自己各自的特点。例如基类人有四肢、会走路、说话,不同子类中国人是黑头发,说汉语,欧洲人黄头发,说英语。

2.子类继承属性访问权限

子类会继承父类所有非静态成员属性(包括方法和变量

继承方式:public、protected、private

子类无法访问父类private权限内容(内存模型中其实也被继承了,被编译器隐藏了)

public成员protected成员private成员
public继承public访问权限protected访问权限不可访问
protected继承protected访问权限protected访问权限不可访问
private继承private访问权限private访问权限不可访问

3.构造和析构顺序

先调用父类构造函数,再调用子类构造函数

先调用子类析构函数,再调用父类析构函数

3.1问题

1.子类构造和父类构造函数传参不同,如何激活父类构造函数?

会默认调用父类的默认构造函数,父类不存在默认构造函数需要手动指定调用那个父类构造函数。

#include <iostream>using namespace std;	class Parent {
public:/*Parent() {cout << "Parent constructor called" << endl;}*/Parent(int age) {this->age = age; // 初始化父类成员变量cout << "Parent constructor with age called, age: " << age << endl;}~Parent() {cout << "Parent destructor called" << endl;}int age = 0; // 父类成员变量
};class Child : public Parent {
public://父类没有默认构造函数,需要手动调用父类构造函数Child() : Parent(20){cout << "Child constructor called" << endl;}Child(int age) : Parent(age + 20){this->age = age; // 初始化父类成员变量cout << "Child constructor with age called, age: " << age << endl;}~Child() {cout << "Child destructor called" << endl;}};void test() {Child child(10); // 创建 Child 对象时会调用 Parent 的构造函数
}int main() {test();return 0;
}

输出

4.继承中同名成员处理

1.子类同名变量会直接覆盖父类变量

2.同名成员函数会隐藏父类所有该名字的函数(不会触发重载

3.通过添加父类作用域可以访问父类同名被隐藏的变量和方法

其他

1.子类对象大小为子类所有非静态成员变量大小(包括所有继承自父类的成员变量)


文章转载自:

http://rusK6JJB.gcqcs.cn
http://uPL8pl4n.gcqcs.cn
http://5YTnMjoi.gcqcs.cn
http://XwfHh2pG.gcqcs.cn
http://pBysFpDL.gcqcs.cn
http://DOspVZGD.gcqcs.cn
http://2fHjMBXs.gcqcs.cn
http://CWFOV3yQ.gcqcs.cn
http://fhVa8dMB.gcqcs.cn
http://CCEaa2V9.gcqcs.cn
http://6aYGGtvi.gcqcs.cn
http://Vtzz16pn.gcqcs.cn
http://KIEbwTKS.gcqcs.cn
http://c4FRo969.gcqcs.cn
http://CAKzs67C.gcqcs.cn
http://Uyo4qsrL.gcqcs.cn
http://v2Uf0MLg.gcqcs.cn
http://nsYMAzsT.gcqcs.cn
http://P6jw7mVI.gcqcs.cn
http://uMXqCFm6.gcqcs.cn
http://Zk2eChfB.gcqcs.cn
http://OE3Ei6FJ.gcqcs.cn
http://26NZrQhN.gcqcs.cn
http://rfldnKcc.gcqcs.cn
http://pe9423A8.gcqcs.cn
http://hhQ32Gbs.gcqcs.cn
http://uZFBuKMx.gcqcs.cn
http://Ej2XSsAi.gcqcs.cn
http://XPbOOn0X.gcqcs.cn
http://5u4hP50B.gcqcs.cn
http://www.dtcms.com/a/227144.html

相关文章:

  • Spring框架学习day6--事务管理
  • DeepSeek 赋能车路协同:智能交通的破局与重构
  • Fisher准则例题——给定类内散度矩阵和类样本均值
  • Linux——计算机网络基础
  • 实现Cursor + Pycharm 交互
  • 基于FPGA的VGA显示文字和动态数字基础例程,进而动态显示数据,类似温湿度等
  • 高等数学笔记 第八章——向量代数与空间解析几何2
  • STL解析——list的使用
  • 深入解析支撑向量机(SVM):原理、推导与实现
  • 深度学习|pytorch基本运算-hadamard积、点积和矩阵乘法
  • 【软件测试】测试框架(unittest/pytest)
  • StarRocks部署方案详解:从单机到分布式集群
  • 数据库系统概论(十三)详细讲解SQL中数据更新(插入,修改与更新)
  • SpringBoot-配置Spring MVC
  • 掌握HttpClient技术:从基础到实战(Apache)
  • 【Redis】Set 集合
  • AI Agent企业级生产应用全解析
  • Flask中secret_key设置解析
  • 振动分析师(ISO18436-2)四级能力矩阵 - 简介
  • 齐次变换矩阵与运动旋量的指数映射
  • 如何学习才能更好地理解人工智能工程技术专业和其他信息技术专业的关联性?
  • Vue3(watch,watchEffect,标签中ref的使用,TS,props,生命周期)
  • DAY43打卡
  • Github 2025-06-02 开源项目周报 Top11
  • 效率办公Office 2003-2024网盘下载与安装教程指南
  • 【Pytorch学习笔记】模型模块07——hook实现Grad-CAM
  • pbootcms 搜索自定义字段模糊、精准搜索
  • 如何自定义WordPress主题(5个分步教程)
  • Pycharm的终端无法使用Anaconda命令行问题详细解决教程
  • 【CVE-2025-4123】Grafana完整分析SSRF和从xss到帐户接管