首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
MatthewMatt
2017-06-21 23:06
家里蹲大学 C++
关注
已关注
取消关注
请教下一个小问题,C++派生类都会包含基类对象成员吗?
详细补充下:无论派生类是已何种方式继承基类,包括public protected private,基类对象成员也可以是public protected private,我想问无论派生类以哪种方式继承基类,是不是在内存中派生类都会含有基类对象成员,哪怕派生类无法访问?
今天突然想到的一个小问题,求大神告知。
提示
全部评论
推荐
最新
楼层
Joran_02
浙江万里学院 C++
在C++编译器的内部 类可以理解为结构体 子类是由父类成员叠加子类新成员得到的 C++多态实现原理:
点赞
回复
分享
发布于 2017-06-22 07:49
Joran_02
浙江万里学院 C++
然后书上举了两个 指针转换的例子。你动手写一写
点赞
回复
分享
发布于 2017-06-24 19:54
Joran_02
浙江万里学院 C++
我去翻了下,根据上下文理解。就是这个意思
点赞
回复
分享
发布于 2017-06-24 19:52
Joran_02
浙江万里学院 C++
写的太概念性了吧,愿意应该是,基类的对象可以独立存在,独立存在的话,那就不是派生类对象的一部分了---这就是那个可能不是。
点赞
回复
分享
发布于 2017-06-24 19:46
MatthewMatt
楼主
家里蹲大学 C++
感谢各位大佬的回复。我在C++ primer 5th p534里有看到这么一句话“一个基类的对象可能是派生类对象的一部分,也可能不是”,请问下这句话是什么意思呢?我没有搞太懂,是不是和前面所表述的意思不一样?
点赞
回复
分享
发布于 2017-06-22 09:49
Joran_02
浙江万里学院 C++
test.h #ifndef _TEST_H_ #define _TEST_H_ typedef void Demo; typedef void Derived; Demo* Demo_Create(int i, int j); int Demo_GetI(Demo* pThis); int Demo_GetJ(Demo* pThis); int Demo_Add(Demo* pThis, int value); void Demo_Free(Demo* pThis); Derived* Derived_Create(int i, int j, int k); int Derived_GetK(Derived* pThis); int Derived_Add(Derived* pThis, int value); #endif test.c #include "test.h" #include "malloc.h" static int Demo_Virtual_Add(Demo* pThis, int value); static int Derived_Virtual_Add(Demo* pThis, int value); struct VTable // 2. 定义虚函数表数据结构 { int (*pAdd)(void*, int); // 3. 虚函数表里面存储什么??? }; struct ClassDemo { struct VTable* vptr; // 1. 定义虚函数表指针 ==》 虚函数表指针类型??? int mi; int mj; }; struct ClassDerived { struct ClassDemo d; int mk; }; static struct VTable g_Demo_vtbl = { Demo_Virtual_Add }; static struct VTable g_Derived_vtbl = { Derived_Virtual_Add }; Demo* Demo_Create(int i, int j) { struct ClassDemo* ret = (struct ClassDemo*)malloc(sizeof(struct ClassDemo)); if( ret != NULL ) { ret->vptr = &g_Demo_vtbl; // 4. 关联对象和虚函数表 ret->mi = i; ret->mj = j; } return ret; } int Demo_GetI(Demo* pThis) { struct ClassDemo* obj = (struct ClassDemo*)pThis; return obj->mi; } int Demo_GetJ(Demo* pThis) { struct ClassDemo* obj = (struct ClassDemo*)pThis; return obj->mj; } // 6. 定义虚函数表中指针所指向的具体函数 static int Demo_Virtual_Add(Demo* pThis, int value) { struct ClassDemo* obj = (struct ClassDemo*)pThis; return obj->mi + obj->mj + value; } // 5. 分析具体的虚函数!!!! int Demo_Add(Demo* pThis, int value) { struct ClassDemo* obj = (struct ClassDemo*)pThis; return obj->vptr->pAdd(pThis, value); } void Demo_Free(Demo* pThis) { free(pThis); } Derived* Derived_Create(int i, int j, int k) { struct ClassDerived* ret = (struct ClassDerived*)malloc(sizeof(struct ClassDerived)); if( ret != NULL ) { ret->d.vptr = &g_Derived_vtbl; ret->d.mi = i; ret->d.mj = j; ret->mk = k; } return ret; } int Derived_GetK(Derived* pThis) { struct ClassDerived* obj = (struct ClassDerived*)pThis; return obj->mk; } static int Derived_Virtual_Add(Demo* pThis, int value) { struct ClassDerived* obj = (struct ClassDerived*)pThis; return obj->mk + value; } int Derived_Add(Derived* pThis, int value) { struct ClassDerived* obj = (struct ClassDerived*)pThis; return obj->d.vptr->pAdd(pThis, value); } Main.c #include "stdio.h" #include "test.h" void run(Demo* p, int v) { int r = Demo_Add(p, v); printf("r = %d\n", r); } int main() { Demo* pb = Demo_Create(1, 2); Derived* pd = Derived_Create(1, 22, 333); printf("pb->add(3) = %d\n", Demo_Add(pb, 3)); printf("pd->add(3) = %d\n", Derived_Add(pd, 3)); run(pb, 3); run(pd, 3); Demo_Free(pb); Demo_Free(pd); return 0; }
点赞
回复
分享
发布于 2017-06-22 07:42
Joran_02
浙江万里学院 C++
会包含。我给你一个C实现c++多态和继承的例子
点赞
回复
分享
发布于 2017-06-22 07:37
JEWELCCLi
腾讯_测试开发
存在,最直接的例子就是多态机制中的虚函数表,可以百度下陈皓大神的那个blog,那个经典啊,有图有理,直观明了
点赞
回复
分享
发布于 2017-06-22 07:10
艾德
福建工程学院 C++
应该吧,举个例子。父类指针指向子类对象,父类指针可以访问private继承的子类对象中属于父类部分的成员,所以内存应该存在
点赞
回复
分享
发布于 2017-06-22 00:26
harry502
重庆邮电大学 C++
是的...
点赞
回复
分享
发布于 2017-06-21 23:35
暂无评论,快来抢首评~
相关推荐
04-28 09:49
南京邮电大学 Java
C++开发-华为OD面经-无经验
背景:24届211软件工程专业。中间因为考研二战空档了一段时间,后经人推荐联系到了栗栗姐。因为很久没接触算法题了,在栗栗姐的帮助下准备了比较久的时间。在整个过程中,栗栗姐尽心尽力帮我联系部门,跟相关人员沟通,非常感谢栗栗姐-----还是旧系统面试发的offer了,哈哈哈哈哈。机试:1、高矮个子排队2、报文响应时间3、简易内存池按栗栗姐发的题库刷就可以,跟力扣上的很多题思路类似,刷的同时也练习了手撕。资格面试:1、自我介绍2、来base地的原因3、空窗期的原因4、大致介绍一下项目5、期望薪资之后就是反问环节了,可以问问培养计划之类的问题。技术一面:首先是自我介绍,之后聊聊了项目问题,开始问八股,...
查看21道真题和解析
点赞
评论
收藏
分享
04-28 13:19
蚌埠坦克学院 嵌入式软件开发
全网最全嵌入式八股文准备资料,秋招春招社招都能直接用
很多同学准备嵌入式找工作时,都会遇到一个很现实的问题:学了不少,项目也做了几个,但一到面试就不会答。尤其是嵌入式岗位,面试官几乎一定会反复问这些内容:C语言/C++指针、内存、宏、结构体数据结构操作系统FreeRTOS / RTOSLinux驱动基础UART/I2C/SPI/CAN中断、DMA、任务调度Bootloader项目问题排查场景题和开放题这些内容,大家平时一般都叫它:嵌入式八股文。问题不是不知道要准备,问题是:不知道从哪里开始整理网上资料太零散很多内容东一块西一块只适合背,不适合理解不知道哪些才是高频重点看了很多,真正面试还是答不出来所以,如果你现在正在准备嵌入式秋招、春招、社招,或...
点赞
评论
收藏
分享
不愿透露姓名的神秘牛友
03-19 10:38
看到网传的丁老板这个图片,简直要笑死
rt 不知道是真的假的丁老板 太难绷了
实力求职者:
真的绷不住了,第一张霸总人设,第二张求生欲拉满
点赞
评论
收藏
分享
03-17 15:24
重庆科技大学 Java
27届求下建议,双非27届感觉没招了
经历了一年多的简历修改,现在还没有尝试海投,八股文感觉还没有准备好,就背了Java jvm啊 MySQL spring 那些,上半年光去实习了,没有背全忘了,最近又开始八股,感觉很没有底气去投。第一次小厂面试一下就过了,就演示了下自己可以运行的项目,好像还问了索引 aop 这些,所以现在很没勇气再去尝试。想请教下现金三银四是说现在投递找什么实习?面试是都有有笔试还是特定大公司才有,还有现在投递的是日常实习吗还是暑假实习呀,或者有没有大佬再帮我看下简历提点意见,就压力很大啊
投递实习岗位前的准备
点赞
评论
收藏
分享
04-29 10:10
北京邮电大学 嵌入式工程师
宇树机器人面经(嵌入式/机器人方向)
一面(基础技术面)自我介绍,然后开始问基础,偏嵌入式底层和RTOS:设计一个带看门狗(Watchdog)的嵌入式系统,描述故障恢复流程UART、SPI、I2C 协议的核心差异及典型应用场景推挽输出与开漏输出的区别?举例说明在 GPIO 控制中的应用如何通过 DMA 减少 CPU 在数据传输中的负载系统时钟配置对低功耗设计的意义是什么嵌入式操作系统(如 FreeRTOS)中任务的状态有哪些?状态切换条件实时操作系统(RTOS)的“硬实时”与“软实时”区别RTOS 的任务调度策略有哪些?如何保证实时性任务间通信方式(信号量、消息队列、管道)的适用场景及优缺点如何避免中断服务程序(ISR)中的竞争条...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
211本嵌软真没人要...
0
2
...
字节日常和暑期好像没什么区别
0
3
...
游戏技术向校招流程总结
0
4
...
28届后端小厂实习要去吗
0
5
...
28届简历求建议
0
6
...
26届和计算机一起陪葬了
0
7
...
27 0实习暑期实习总结
0
8
...
转转vs云智
0
9
...
26应届生,五月还能找到工作吗
0
10
...
实习推荐
0
创作者周榜
更多
正在热议
更多
#
这个offer值得去吗?
#
17703次浏览
167人参与
#
字节开奖
#
148120次浏览
654人参与
#
联宝杯大学生创新大赛,你的技术值得产业级答案
#
47068次浏览
513人参与
#
如果春招能重来,我会___
#
18741次浏览
200人参与
#
刚工作的你,踩过哪些坑?
#
46319次浏览
295人参与
#
除了线上,还能去哪些地方投简历
#
10452次浏览
110人参与
#
HR问:你期望的薪资是多少?如何回答
#
99007次浏览
830人参与
#
薪资爆料
#
421213次浏览
2219人参与
#
一份好的简历长什么样?
#
41728次浏览
505人参与
#
你面试被问到过哪些不会的问题?
#
122150次浏览
1944人参与
#
今年形式下双非本找得到工作吗
#
328338次浏览
1774人参与
#
你觉得实习能学到东西吗
#
153790次浏览
1491人参与
#
滴!实习打卡
#
844738次浏览
6876人参与
#
实习最晚的一次下班是几点
#
35716次浏览
171人参与
#
秋招疯了,看什么都像offer
#
65119次浏览
362人参与
#
大家每天通勤多久?
#
119512次浏览
1656人参与
#
26届秋招投递记录
#
124688次浏览
690人参与
#
影石Insta360求职进展汇总
#
190079次浏览
1384人参与
#
面试官拷打AI项目都会问什么?
#
16524次浏览
519人参与
#
金三银四,你的春招进行到哪个阶段了?
#
36523次浏览
340人参与
#
你的公司给实习生发中秋礼物吗
#
17405次浏览
55人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务