【今日学习】C++ Primer Plus 第六版——RTTI、代码重用(上)
来源:互联网 发布:移动4g网络套餐 编辑:程序博客网 时间:2024/06/05 10:07
RTTI(运行阶段类型识别,RunTime Type Identification)
多态的基础!
运行的时候根据具体对象的类型再决定做什么事情
引出指针转换的问题。例如class 爷爷,class 爸爸,class 儿子
儿子类型的指针可以dynamic_cast后赋值给爸爸类型、爷爷类型的指针,因为儿子类继承于爸爸和爷爷
但反过来,爷爷类指针dynamic_cast成爸爸类,要赋值给爸爸型指针,则会失败。dynamic_cast<const PAPA>*grand的结果是空指针。
四种C++类型转换:(dynamic,static,const,reinterpret)
dynamic显式向上转换,如果向下转换,指针为空
static隐式转化,向下转换不会失败,但有潜在问题
const唯一可以去除const关键字的转换
reinterpret天生危险的转换,如:把double转换为两个short组成的struct
以下是C++用到的代码重用的方法
1、包含对象成员的类
例如class A
{
string name;
valarray<double> scores;
}
string和valarray就是A以外的其他类。A包含了其他类(组合关系)
2、私有继承和保护继承
class A:private std::string ,private std::valarray<double>
{
...
}
以上为私有继承。保护继承,则使用的是protected
3、多重继承(MI)
个人不建议使用
4、定义模板类以及如何使用。把下面语句放在头文件,比如stack1.h中
template<typename Type>
class ShiFan
{
T element;
T func()
{return this.element;}
}
然后,stack1.cpp引用该头文件
ShiFan<int> s;
使用方法类似于使用vector、stack等
0 0
- 【今日学习】C++ Primer Plus 第六版——RTTI、代码重用(上)
- 【今日学习】C++ Primer Plus 第六版——友元、内嵌类、异常
- 《C++ Primer Plus(第六版)》(28)(第十四章 C++中的代码重用 笔记)
- C++Primer学习笔记(代码重用)
- 《C++ Primer Plus(第六版)》(29)(第十四章 C++中的代码重用 复习题答案)
- 《C++ Primer Plus(第六版)》(30)(第十四章 C++中的代码重用 编程题答案)
- 【C++】学习笔记十四——C++ primer plus第六版第4章编程练习
- 【读书笔记:C++ primer plus 第六版 中文版】第14章 C++中的代码重用
- C++Primer Plus(第六版) 第六章 第二题
- C++Primer Plus(第六版) 第七章 第六题
- C++ Primer Plus(第六版)--学习杂记(第六章)
- 记录——《C Primer Plus (第五版)》第七章编程练习第六题
- 记录——《C Primer Plus (第五版)》第八章编程练习第六题
- 记录——《C Primer Plus (第五版)》第九章编程练习第六题
- 记录——《C Primer Plus (第五版)》第十章编程练习第六题
- C++ Primer Plus(第六版)—— 第二章 开始学习C++ 笔记
- 【学习C++】C++ Primer Plus (第六版)第七章编程练习6-10
- 【学习C++】C++ Primer Plus (第六版)第八章编程练习1-7
- Maven+Tomcat+Eclipse热部署
- 一线架构师实践指南--笔记
- jQuery
- 展望2015
- 做人的基本原则(看完终身受益)...
- 【今日学习】C++ Primer Plus 第六版——RTTI、代码重用(上)
- C语言随笔
- 计算1-n的和(不用for, while, goto, if, else, switch, case和三目运算符, 也不用乘除法)---利用间接递归
- Linux批量创建用户和设置密码及删除用户
- MRC下计时器
- 【今日学习】C++ Primer Plus 第六版——友元、内嵌类、异常
- VirtualBox(Host=win7) 安装Fedora21
- uva 673 Parentheses Balance 习题6-1 (栈——基础练习)
- UIPikerView视图的创建