C++ 进阶——object slicing 与虚函数与dynamic_cast<>
来源:互联网 发布:山东税务软件下载 编辑:程序博客网 时间:2024/06/07 05:10
C++基础——C++风格的类型转换(static_cast、const_cast、dynamic_cast、reinterpret_cast)
只有再做向上转型(upcast)的动作时,才存在对象切割(object slicing),子类的内存空间显然要大于父类的嘛,切割即是保留从父类继承而来的,切除子类所独有的。
- (1)object slicing 对象切割是向上转型(转换为父类)
- (2)dynamic_cast<子类指针/子类引用> 是向下转型(转换为子类指针或子类引用)
#include <iostream>using namespace std;class CDocument{public: void func() { cout << "CDocument::func() " << endl; Serialize(); } virtual void Serialize() { cout << "CDocument::Serialize()" << endl; }};class CMyDocument:public CDocument{public: virtual void Serialize() { cout << "CMyDocument::Serialize()" << endl; }};int main(int, char**){ CMyDocument myDoc; ((CDocument*)&myDoc)->func(); // 基类指针指向派生类对象 // 不是向上转型 cout << "==================================" << endl; ((CDocument)myDoc).func(); // myDoc 对象强转为 CDocument,向上转型, // 派生类的特有成员会丢失 // 完完全全将派生类对象转换类基类对象(将派生类对象拷贝构造为基类对象) // dynamic_cast<>(); return 0;}
运行结果如下:
CDocument::func()CMyDocument::Serialize()==================================CDocument::func()CDocument::Serialize()
0 0
- C++ 进阶——object slicing 与虚函数与dynamic_cast<>
- object slicing与虚函数
- C++虚函数与Object Slicing
- 从零开始学C++之虚函数与多态(一):虚函数表指针、虚析构函数、object slicing与虚函数、C++对象模型图
- 从零开始学C++之虚函数与多态(一):虚函数表指针、虚析构函数、object slicing与虚函数、C++对象模型图
- 虚函数与多态(一):虚函数表指针、虚析构函数、object slicing与虚函数、C++对象模型图
- 从零开始学C++之虚函数与多态(一):虚函数表指针、虚析构函数、object slicing与虚函数、C++对象模型图 .
- 从零开始学C++之虚函数与多态(一):虚函数表指针、虚析构函数、object slicing与虚函数、C++对象模型图
- 二十九、多态、静态绑定与动态绑定、虚函数、虚表指针、object slicing与虚函数、overload、override 、overwrite
- dynamic_cast与typeit及虚函数知识点
- error C2683: “dynamic_cast”:“XXX”不是多态类型。dynamic_cast与虚函数
- 浅议 Dynamic_cast 和 RTTI与虚函数表的关系
- C++ 对象切割(Object slicing )与虚拟函式 [大三TJB_708]
- 关于Object-c 中的构造函数与析构函数
- Object C 与 Java
- object-c与swift
- PHP进阶(一)——数组与函数
- C语言——数组与指针进阶(一)
- Laravel 学习笔记——路由(中间件与路由组)
- 选择排序
- UGUI UI操作事件
- PHP学习笔记-PHP语言基础1
- scoiday1T3&&bzoj4445小凸想跑步
- C++ 进阶——object slicing 与虚函数与dynamic_cast<>
- Android之Notification
- 插入排序
- http://blog.csdn.net/olanlanxiari/article/details/8104505
- Mac常见问题解决
- Ubuntu下控制蜂鸣器
- Android图片海报制作-自定义文字排版控件组件
- 编程实现通过状态图确定句子
- 使用powershell Client进行有效dy