C++虚函数与Object Slicing
来源:互联网 发布:php页面重定向 编辑:程序博客网 时间:2024/05/17 08:23
在写MFC应用程序的时候,有必要搞懂虚函数和Object Slicing.
我们首先来看一个极为简单的程序:
#include <iostream>using namespace std;class A{public:void f(){cout << "A::f" << endl;g();}void g(){cout << "A::g" << endl;}};class B : public A{public:void g(){cout << "B::g" << endl;}};int main(){B b;b.f(); // A::f和A::g((A)b).f(); // A::f和A::gB *pb = new B;pb->f(); // A::f和A::g((A*)(&b))->f(); // A::f和A::greturn 0;}现在把g函数设置为虚函数,得到程序为:
#include <iostream>using namespace std;class A{public:void f(){cout << "A::f" << endl;g();}virtual void g(){cout << "A::g" << endl;}};class B : public A{public:virtual void g(){cout << "B::g" << endl;}};int main(){B b;b.f(); // A::f和B::g((A)b).f(); // A::f和A::g (Object Slicing)B *pb = new B;pb->f(); // A::f和B::g((A*)(&b))->f(); // A::f和B::greturn 0;}
- object slicing与虚函数
- C++虚函数与Object Slicing
- C++ 进阶——object slicing 与虚函数与dynamic_cast<>
- 从零开始学C++之虚函数与多态(一):虚函数表指针、虚析构函数、object slicing与虚函数、C++对象模型图
- 从零开始学C++之虚函数与多态(一):虚函数表指针、虚析构函数、object slicing与虚函数、C++对象模型图
- 虚函数与多态(一):虚函数表指针、虚析构函数、object slicing与虚函数、C++对象模型图
- 从零开始学C++之虚函数与多态(一):虚函数表指针、虚析构函数、object slicing与虚函数、C++对象模型图 .
- 从零开始学C++之虚函数与多态(一):虚函数表指针、虚析构函数、object slicing与虚函数、C++对象模型图
- 二十九、多态、静态绑定与动态绑定、虚函数、虚表指针、object slicing与虚函数、overload、override 、overwrite
- 理解object slicing
- 理解object slicing
- 什么是对象切片(Object Slicing)?
- 什么是对象切片(Object Slicing)?
- c++对象切割(Object Slicing)
- c++对象切割(Object Slicing)
- 类继承中的Object slicing
- c++对象切割(Object Slicing)
- C++ 对象切割(Object slicing )与虚拟函式 [大三TJB_708]
- 第八章 高级视图和URL配置
- poj 1521 Entropy huffman(哈夫曼)编码
- 完美之星编程大赛 复赛第二场 24点
- 数论若干题
- 求知系列
- C++虚函数与Object Slicing
- HDU 1856
- HDU 1232
- 过滤器的模拟实现
- Libgdx New 3D API 教程之 -- 使用Libgdx加载3D场景
- AF_INET和PF_INET的细微不同
- C语言goto关键字
- 从程序员到CTO的Java技术路线图
- 基于servlet的MVC模式------MVC模式设计四则运算小web应用