当前位置: 首页 > news >正文

东莞玩具加工东莞网站建设廊坊seo网络推广

东莞玩具加工东莞网站建设,廊坊seo网络推广,襄樊市网站建设公司,江阴建设银行网站同一个类,不同对象使用同一张虚函数表 不同类使用不同的虚函数表 子类自己添加的虚函数(非重写),在VS中是将此放在第一个继承类的虚函数表里. #include <iostream> using namespace std;class Father { public:virtual void func1() { cout << "Father::f…

同一个类,不同对象使用同一张虚函数表

不同类使用不同的虚函数表

子类自己添加的虚函数(非重写),在VS中是将此放在第一个继承类的虚函数表里.
在这里插入图片描述

#include <iostream>
using namespace std;class Father {
public:virtual void func1() { cout << "Father::func1" << endl; }virtual void func2() { cout << "Father::func2" << endl; }virtual void func3() { cout << "Father::func3" << endl; }void func4() { cout << "Father::func4" << endl;}public:long long x = 1;long long y = 2;static int z;};class Mother{
public:virtual void handle1() { cout << "Mother::func1" << endl; }virtual void handle2() { cout << "Mother::func2" << endl; }virtual void handle3() { cout << "Mother::func3" << endl; }public:int m = 3;int n = 4;
};class Son :public Father,public Mother {
public://重写了func1 ,增加了func5virtual void func1() override{ cout << "Son::func1" << endl; }virtual void handle1() { cout << "Son::handle2" << endl; }virtual void func5() { cout << "Son::func5" << endl; }
};class  GrandSon :public Son {};typedef void(*func_t) (void);  //函数指针 返回类型void ,参数void
int Father::z = 1;
int main(void) {Son son;cout << "对象地址" <<(long long *)&son << endl;long long* vfptr1 = (long long*)*(long long*)&son;	//对象首地址,vfptrcout << "第一个虚函数表指针:" << vfptr1 << endl;for (int i = 0; i < 4; i++) {cout << "这是第" << i + 1 << "个虚函数" << endl;((func_t) * (vfptr1 + i))();}for (int i = 0; i < 2; i++) {cout << *(int *)((long long)&son + 8 + i * 4) << endl;	//值}long long* vfptr2 = (long long*) * ( (long long*)&son + 3);cout << "第二个虚函数表指针:" << vfptr2 << endl;for (int i = 0; i < 3; i++) {cout << "这是第" << i + 1 << "个虚函数" << endl;((func_t) * (vfptr2 + i))();}for (int i = 0; i < 2; i++) {cout << *(int*)((long long)&son + 32 + i * 4) << endl;	//值}system("pause");return 0;
}

对象地址00000034A26FF4E8
第一个虚函数表指针:00007FF7095BBD60
这是第1个虚函数
Son::func1
这是第2个虚函数
Father::func2
这是第3个虚函数
Father::func3
这是第4个虚函数
Son::func5
1
0
第二个虚函数表指针:00007FF7095BBD90
这是第1个虚函数
Son::handle2
这是第2个虚函数
Mother::func2
这是第3个虚函数
Mother::func3
3
4

有一个错误:Father的x,y,一开始定义成了int,老师解答,long long * + 3 是加3个 long long ,

http://www.dinnco.com/news/8297.html

相关文章:

  • 网站前端切图做多个页面app营销
  • 专业工厂网站建设平台运营推广
  • 数据科学与大数据技术快手seo
  • 大地seo百度关键词优化是什么意思
  • 保温管有哪些网站做成都本地推广平台
  • 合肥seo网站推广外包app制作公司
  • 登封网站制作网站建设品牌咨询
  • 常见网站类型怎么查询百度收录情况
  • 国内独立站厦门seo外包服务
  • 东莞微网站制作2024年度关键词
  • 淄博刚刚发布紧急通知百度seo如何快速排名
  • 个人网站可以做论坛么第一设计
  • 什么网站的图片可以做商用东莞搜索排名提升
  • 手把手教你做网站7网站优化排名查询
  • 潍坊网站制作厂家seo网站关键词
  • 美国靠谱做调查网站seo优化软件有哪些
  • 教做年糕博客网站免费的发帖收录网站
  • 在重庆_那里可以做诚信网站认证绍兴seo计费管理
  • 石景山周边网站建设百度推广退款投诉
  • 零基础 网站今日头条关键词工具
  • 慈溪做网站哪家好重庆高端网站seo
  • 如何删除网站后台的文章百度搜一搜
  • php外贸网站制作网站seo是干什么的
  • wordpress留言本页面seo的主要工作是什么
  • 黄村专业网站开发公司网络推广企划
  • 网络营销网站建设实训怎样注册网站建立网页
  • 济南集团网站建设公司网站建设网站定制
  • 怎样注册一个网站做电商吴中seo页面优化推广
  • 做网站 微信开发前景沈阳网站制作优化推广
  • wordpress同城插件如何利用seo赚钱