c++学习笔记_5
前言:本笔记所对应的课程为中国大学mooc中北京大学的程序设计与算法(三)C++面向对象程序设计,主要供自己复习使用,且本笔记建立在会使用c和java的基础上,只针对与c和java的不同来写
继承
继承和派生的基本概念
- c++中的继承和派生是同一概念,其基本定义和用法与java中的类似
- 与java中相对应的,父类叫做基类,子类叫做派生类
- 写法: “class 派生类名: public 基类名”
- 派生类对象的内存空间中包含着基类对象,且基类对象的储存位置位于派生类对象新增的成员变量之前。
继承关系和复合关系
较简单,略。
覆盖和保护成员
- 覆盖:定义:派生类中可以定义一个和基类成员同名的成员。使用作用域符号
::
可以访问基类中的同名成员,不使用作用域符号则访问派生类中成员。 - 基类的protected成员可被下列函数访问:
基类的成员函数
基类的友元函数
派生类的成员函数可访问当前对象的基类的保护成员(这一点是相对于private多出来的)
派生类的构造函数
- 派生类的参数初始化方法:调用基类的构造函数。在执行一个派生类构造函数之前,总是先执行基类的构造函数。
- 具体写法:有两种,第一是显示方式,在派生类的构造函数的初始化列表中,直接调用基类的构造函数;第二是隐式方式,如果省略不写基类构造函数,则会自动调用基类的无参构造函数(没有无参构造函数时会编译出错)。
- 派生类的析构函数被执行时,执行完派生类的析构函数后,自动调用基类的析构函数。
- 封闭派生类对象的构造函数执行顺序:先执行基类的,再执行成员对象的,最后执行派生类自己的。派生对象消亡时顺序恰好相反。
公有继承的赋值兼容规则
规则大体上同java。
- 派生类对象可以赋值给基类对象。
- 派生类对象可以初始化基类引用。
- 派生类对象的地址可以赋值给基类指针。
(派生方式不是public,而是private或者protected,则上述规则不成立)
c++学习笔记_5的更多相关文章
- PythonI/O进阶学习笔记_5.python的set和dict
前言: 我一直觉得对我来说学习知识很忌讳不系统.本篇内容与上一篇 自定义序列类是有联系的. 上一篇比较通范的了解了序列类的一些协议和特性,并且有些list的内容.这篇更加具体到set和dict这两个序 ...
- Java编程思想学习笔记_5(IO流)
一.用DataInputStream读取字符 可以使用available方法查看还有多少可供存取的字符.示例如下: public class Test1 { public static void ma ...
- Hibernate 马士兵 学习笔记 (转)
目录(?)[+] 第2课 Hibernate UML图 第3课 风格 第4课 资源 第5课 环境准备 第6课 第一个示例Hibernate HelloWorld 第7课 建立Annotation版本的 ...
- matlab学习笔记8 基本绘图命令-初级二维绘图/交互式绘图
一起来学matlab-matlab学习笔记8 基本绘图命令_5 初级二维绘图/交互式绘图 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用&g ...
- Learning hard 学习笔记
第一章 你真的了解C#吗 1.什么是C#, 微软公司,面向对象,运行于.NET Framework之上, 2.C#能编写哪些应用程序, Windows应用桌面程序,Web应用程序,Web服务, 3.什 ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
随机推荐
- Warning: (1260, 'Row xxx was cut by GROUP_CONCAT()')
MySql数据库查询时,使用group_concat报错“Row XXX was cut by GROUP_CONCAT()”,查了下是因为group_concat有个最大长度的限制,超过最大长度就会 ...
- 9、Spring Boot 2.x 集成 Thymeleaf
1.9 Spring Boot 2.x 集成 Thymeleaf 完整源码: Spring-Boot-Demos 1.9.1 在pom中引入依赖 <dependency> <grou ...
- luogu2034
/* * 正难则反 * f[i] 表示前 i 个数中被删除的数的最小和 * f[i] = min(f[j]) + num, i - k + 1 <= j < i; * 单调队列维护 */ ...
- 1632:【 例 2】[NOIP2012]同余方程
#include<bits/stdc++.h> #define ll long long using namespace std; void Exgcd(ll a,ll b,ll & ...
- Flask-CBV模式
Flask中的CBV模式 ''' flask中的CBV模式: (1)导入views模块: from flask import views (2)定义类,继承views.MethodView类: cla ...
- java试题复盘——9月8日
上: 1.可将语句块或方法设为同步使用的语句是(A) A synchronized 用于方法或者代码块前,使此方法或者代码变成同步的 B static ...
- 5 款最酷的 Linux 终端模拟器
转载:https://cloud.tencent.com/developer/article/1040344 首先我要推荐的第一个终端是 Xiki. Xiki 是 Craig Muth 的智慧结晶,他 ...
- NOI2019 游记——一切都是最好的安排
有幸运有遗憾 一切都是最好的安排. Day-3 临近NOI了,机房都在狂奶某某同学进队稳了 HE省队垫底,THUSC面试都没进 作为一个有自知之明的人 也就指望着能拼进前100,至少也拿个银牌. 心态 ...
- Redis使用Docker镜像安装
详细见本人以下文档: https://www.cnblogs.com/zyc-blogs/p/9621727.html
- 算法的时间复杂度——"大O分析法"(转载)
原文地址:https://my.oschina.net/gooke/blog/684026 一下为本人笔记:) 场景:在解决计算机科学领域的问题时,经常有好多个方法都可以,想找到最优的方法,就有了时间 ...