C++公有派生
C++中的公有派生:
1、格式:Class A:public B{...}:
例如我们先声明了一个基类:SafeIntArray,当我们要声明它的派生类IndexIntArray时,格式如下:
2、派生类的构造函数:
(1)派生类不能直接访问基类的私有成员,需要通过基类的构造函数;
(2)基类对象必须先被构造,如果没有使用基类的构造函数,程序将调用基类的默认构造函数;
(3)为了能先构造出基类对象,C++一般在派生类的构造函数中使用成员初始化列表来构建并初始化基类对象:
3、派生类的析构函数:当派生类被释放时,程序会先调用派生类的析构函数,再调用基类的析构函数。
4、派生类的使用:
(1)派生类能够使用基类的非私有方法,如果基类的方法与派生类的某些方法相同,那么在调用时需加上类名,即 class_name :: function_name()。假如基类和派生类都有方法:fun(),当我们重写派生类的fun()的代码中需要用到基类的fun()时,记得加上域名,否则会变成一个无法终止的递归函数。
(2)基类的指针能够在非显式转换下指向派生类对象,基类的引用也可以在不显式转换的情况下指向派生类。反之不行,即不能把基类的对象和地址赋给派生类的引用和指针,如:
//End.
C++公有派生的更多相关文章
- C++:基类与派生类对象之间的赋值兼容关系
4.5 基类与派生类对象之间的赋值兼容关系 在一定条件下,不同类型的数据之间可以进行类型转换,例如可以将整型数据赋给双精度型变量. 在赋值之前,先把整型数据转换为双精度型数据,然后再把它双精度型变量. ...
- C++:派生类的构造函数和析构函数
4.2 派生类的构造函数和析构函数4.2.1 派生类构造函数和析构函数的执行顺序 通常情况下,当创建派生类对象时,首先执行基类的构造函数,随后再执行派生类的构造函数:当撤销派生类对象时,则先执行派生类 ...
- C++:基类和派生类
4.1 派生类的声明 继承实例如下: class Person{ //声明基类Person public: void print() { cout<<"name:"&l ...
- 走进C++程序世界------继承和派生
继承和派生 继承是面向对象编程语言的最重要方面之一,正确的使用继承可编写出设计良好,容易于维护和扩展的应用程序.下面是在其他博客中的总结: ****************************** ...
- C++学习之路—继承与派生(四)拓展与总结
(根据<C++程序设计>(谭浩强)整理,整理者:华科小涛,@http://www.cnblogs.com/hust-ghtao转载请注明) 1 拓展部分 本节主要由两部分内容组成,分 ...
- C/C++基础知识总结——继承与派生
1. 类的继承与派生 1.1 派生类的定义 (1) 定义规范 class 派生类名: 继承方式 基类1名, 继承方式 基类2名... { ...派生类成员声明; }; (2) 从以上形式上看可以多继承 ...
- 【C++ 继承与派生/知识梳理】
为什么引入继承派生 代码重用扩充 软件的复用 层次分类 派生类的语法定义 class 派生类名(1):继承方式(2) 基类名(3){ 派生成员声明:} *(1)一个派生类——>多个基类,多继 ...
- C++ 继承与派生
继承的意义? 使程序的设计更符合发展规律,即事物的发展是一个从低级到高级的发展过程,类的继承也是反映由原始的简单代码到丰富的高级代码的过程.它能帮助我们描述事物的层次关系,有效而精确的理解事物,理解事 ...
- C++学习笔记44:继承与派生
类的组合,类的继承 类的组合(汽车类,轮子类,此时可以把轮子类组合到汽车类:) 类的继承(交通工具类,汽车类,此时汽车类可以派生自交通工具类:) 组合:常用描述has a.. 继承:常用描述is a ...
随机推荐
- uC/OS-II时间(OS_time)块
/*************************************************************************************************** ...
- 半透明状态栏(适用于搜索等)CSS样式
.search-{ -webkit-box-flex: ; -moz-box-flex:; text-align: left; font-size:14px; line-height:22px; he ...
- Android学习笔记——ProgressBarHandler
该工程的功能是实现点击按钮进度条按10%递增,使用的方式是Handler 以下的代码是MainActivity.java中的代码 package com.example.progressbarhand ...
- nodeJS接受post传过来的参数
1.nodeJs接受Post传递的参数需要通过绑定两个事件来获取, querystring = require("querystring"); 1 app.post('/comm ...
- C++中dynamic_cas操作符的工作原理
http://stackoverflow.com/questions/13783312/how-does-dynamic-cast-work http://publib.boulder.ibm.com ...
- js日期计算及快速获取周、月、季度起止日,获取指定日期周数以及星期几的小例子
JS获取日期时遇到如下需求,根据某年某周获取一周的日期.如开始日期规定为星期四到下一周的星期五为一周. 格式化日期: function getNowFormatDate(theDate) { var ...
- VS代码段扩展Snippet Designer is a Visual Studio plug in which allows you to create and search for snippets inside the IDE
Snippet Designer is a Visual Studio plug in which allows you to create and search for snippets insid ...
- JS之function的应用
1.最基本的作为一个本本分分的函数声明使用. 复制代码代码如下: function func(){} 或 var func=function(){}; 2.作为一个类构造器使用: 复制代码代码如下: ...
- TF-IDF 加权及其应用
TF-IDF 加权及其应用 TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索的常用加权技术.TF-IDF是一种统计方法,用以评估某个 ...
- spring boot入门例子
最近学习spring boot,总结一下入门的的基础知识 1新建maven项目,修改pom.xml <project xmlns="http://maven.apache.org/PO ...