c++中类的大小和虚函数调用顺序
来源:互联网 发布:智能电视怎样安装网络 编辑:程序博客网 时间:2024/05/16 15:35
声明了一个父类一个子类。
class father{public:father();~father();virtual int getAge();private:int m_age;};class child : public father{public:child();~child();virtual int getAge();private:int m_age;};
实现代码:
#include "test.h"#include <iostream>using namespace std;father::father(){cout<<"father() is Called"<<endl;}father::~father(){cout<<" ~father() is Called "<<endl;};int father::getAge(){m_age = 50;cout<< "father's getAge() is Called age = "<<m_age<<endl;return m_age;}child::child(){cout<<" child() is Called "<<endl;}child::~child(){cout<<" ~child() is Called"<<endl;}int child::getAge(){m_age = 20;cout<< "child's getAge() is Called age = "<<m_age<<endl;return m_age;}
测试代码:
#include <iostream>using namespace std;#include "test.h"int main(){cout<<sizeof(father)<<endl;cout<<"父类的调用顺序"<<endl;father * pfather = new father();cout<<sizeof(*pfather)<<endl;pfather->getAge();delete pfather;cout<<endl;cout<<sizeof(child)<<endl;cout<<"子类的调用顺序"<<endl;child * pchild =new child();cout<<sizeof(*pchild)<<endl;pchild->getAge();delete pchild;return 0;}
其中父类的成员变量m_age 占4字节,虚函数表指针占4字节 共有8字节。
子类在父类的基础上还要 ,增加自己的成员变量m_age。
测试结果:
- c++中类的大小和虚函数调用顺序
- 看C++中构造函数的调用顺序
- 派生类构造函数和析构函数的调用顺序(C++)
- C++类的继承中构造函数和析构函数调用顺序例子
- 【C++】基类和派生类构造函数的调用顺序
- 类的析构函数和构造函数调用顺序
- 【c++】构造函数调用顺序的研究
- c++中 子类父类的构造函数调用顺序
- C++中类的构造函数调用顺序
- C++中类的构造函数调用顺序
- C++中类的构造函数调用顺序
- java 类中 构造函数的相互调用 顺序
- Adapter中函数的调用顺序
- Android中AsyncTask的函数调用顺序
- Adapter中函数的调用顺序
- <C++>13.构造函数和析构函数的调用顺序
- 基类和子类的调用顺序(C#,java)
- 基类和子类的调用顺序(C#,java)
- experiment : 使windbg反汇编窗口代码语法高亮
- (四)用telnet远程配置交换机----即任务二中--------1. 交换机的配置/VLAN
- KMP算法实现
- NDK导入Eclipse CDT出现jni.h找不到解决方法
- 一步步构建大型网站架构
- c++中类的大小和虚函数调用顺序
- codeforces 301 A Yaroslav and Sequence
- QT 定时器
- java从程序员到CTO
- oracle 建用户
- Android recovery 下使用 updater-script 自制升级包
- android 中碰到:java.lang.NullPointerException状况
- uva 11129
- asp.net(入门理解)