C++的三大特性之一继承
一、继承的相关基本概念
1、继承的定义
2、 继承的声明
二、构造函数和析构函数
1.继承中的构造函数
2.继承中的析构函数
1 class Base 2 { 3 public: 4 Base(){} 5 virtual ~Base() 6 { 7 cout << "~Base()" << endl; 8 } 9 public: 10 int _pub1; 11 }; 12 class Derived:public Base 13 { 14 public: 15 Derived(int k=1) 16 { 17 buf = new char[k]; 18 } 19 ~Derived() 20 { 21 delete[] buf; 22 cout << "~Derived()" << endl; 23 } 24 public: 25 char* buf; 26 }; 27 28 void test() 29 { 30 31 Base* b = new Derived(5); 32 delete b; 33 } 34 int main() 35 { 36 test(); 37 return 0; 38 }
三、继承中的同名隐藏
1 class A 2 { 3 public: 4 void test(int) 5 { 6 cout << "test1()" << endl; 7 } 8 9 public: 10 int _pub1; 11 protected: 12 int _pro1; 13 private: 14 int _pri1; 15 }; 16 17 class B :public A 18 { 19 public: 20 void test() 21 { 22 cout << "test2()" << endl; 23 } 24 public: 25 int _pub2; 26 protected: 27 int _pro2; 28 private: 29 int _pri2; 30 }; 31 int main() 32 { 33 B b; 34 b.test(); //编译错误 35 b.test(3); //编译错误 36 b.A::test(3); //正确 37 return 0; 38 }
1 class Base 2 { 3 public: 4 Base() { cout << "Base()" << endl; } 5 ~Base() { cout << "~Base()" << endl; } 6 public: 7 int _pub1; 8 protected: 9 int _pro1; 10 11 }; 12 class Derived :public Base 13 { 14 public: 15 Derived() { cout << "Derived()" << endl; } 16 ~Derived() { cout << "~Derived()" << endl; } 17 public: 18 int _pub2; 19 protected: 20 int _pro2; 21 }; 22 int main() 23 { 24 return 0; 25 }
五、理解“is a”和“has a”
转载于:https://www.cnblogs.com/MrListening/p/5597921.html
C++的三大特性之一继承相关推荐
- 面向对象的三大特性之继承
# 面向对象的三大特性之继承# 当类之间有显著不同,并且较小的类是较大的类所需要的组件时,用组合比较好 (如机器人) # 当类之间有很多相同的功能,提取这些共同的功能做成基类,用继承比较好 (动物-- ...
- java三大特性 继承_java基础(二)-----java的三大特性之继承
在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...
- 【转】java提高篇(二)-----理解java的三大特性之继承
[转]java提高篇(二)-----理解java的三大特性之继承 原文地址:http://www.cnblogs.com/chenssy/p/3354884.html 在<Think in ja ...
- Java提高篇 —— Java三大特性之继承
一.前言 在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事 ...
- Python - 面向对象编程 - 三大特性之继承
继承 继承也是面向对象编程三大特性之一 继承是类与类的一种关系 定义一个新的 class 时,可以从某个现有的 class 继承 新的 class 类就叫子类(Subclass) 被继承的类一般称为父 ...
- 【Golang第8章:面向对象编程】Go语言的结构体是什么,怎么声明;Golang方法的调用和声明;go语言面向对象实例,go语言工厂模式;golang面向对象的三大特性:继承、封装、多态
介绍 这个是在B站上看边看视频边做的笔记,这一章是Glang面向对象编程 这一章内容较多,内容有Go语言的结构体是什么,怎么声明:Golang方法的调用和声明:go语言面向对象实例,go语言工厂模式: ...
- 面向对象之:三大特性:继承(已讲),封装,多态
目录 1.封装 2.多态 3.类的约束 4. super()深入了解 前言: python面向对象的三大特性:继承,封装,多态. 1. 封装: 把很多数据封装到⼀个对象中. 把固定功能的代码封装到⼀个 ...
- 04 面向对象之:三大特性:继承,封装,多态
前言: Python面向对象的三大特性:继承,封装,多态 1.封装:把很多数据封装到一个对象中,把固定功能的代码封装到一个代码块,函数,对象,打包成模块.这都属于封装的思想.具体的情况具体分析,比如, ...
- Python面向对象之:三大特性:继承,封装,多态以及类的约束
前言: python面向对象的三大特性:继承,封装,多态. 1. 封装: 把很多数据封装到⼀个对象中. 把固定功能的代码封装到⼀个代码块, 函数, 对象, 打包成模块. 这都属于封装的思想. 具体的情 ...
- 04 面向对象之:三大特性:继承(已讲),封装,多态。
前言: python面向对象的三大特性:继承,封装,多态. 1. 封装: 把很多数据封装到⼀个对象中. 把固定功能的代码封装到⼀个代码块, 函数, 对象, 打包成模块. 这都属于封装的思想. 具体的情 ...
最新文章
- 从咨询公司学到的思考分析方法
- 索引名 oracle,ORACLE 索引名称矫情
- 【Java基础】容器
- 使用StateServer机制来解决session丢失而造成用户验证失败
- 以云原生的名义,举办一次技术聚会
- Aix oracle 自动启动,AIX如何自动启动和关闭软件的运行
- Linux--网卡聚合简单脚本(bond0)
- 二叉树的建立和遍历算法 - 数据结构和算法47
- FPGA的ip核之概念和分类
- Linux:I/O多路转接之select(有图有代码有真相!!!)
- python调试神器_Python里三个最高逼格的调试神器
- Asp.Net NPOI excl文件导入导出
- composer 设置代理
- skyline 环境配置
- 消息队列MQ的基础知识
- Lightbox JS 用法
- AST混淆实战|仿obfuscator混淆控制流平坦化(超详细版)
- 免费的移动硬盘数据恢复软件EasyRcovery15
- Go--Redis快速入门指南
- 低通滤波器转带通滤波器公式由来_开关电源电磁兼容进级EMI传导输入滤波器的设计理论(EDTEST上海)...
热门文章
- echart多个柱状图 设置y轴显示_Echart可视化学习笔记(五)
- 【Tensorflow】深度学习实战04——Tensorflow实现VGGNet
- Leetcode —— 208. 实现 Trie (前缀树)(Python)
- Pandas数据操作
- 深度学习的实用层面 —— 1.3 机器学习基础
- leetcode - 712. 两个字符串的最小ASCII删除和
- 【例题+习题】【数值计算方法复习】【湘潭大学】(二)
- PyTorch 搭建神经网络 (MNIST)[含注释]
- Nginx担当WebSockets代理
- GOF之结构型模式Ⅰ(重点)