首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
暂无评论,快来抢首评~
相关推荐
01-27 10:34
重庆大学 研发工程师
发现一款业务员和程序员都可以用的摸鱼低代码开发平台!
在企业数字化转型的浪潮中,普遍面临着一个核心矛盾:市场变化要求业务快速迭代,而传统代码开发却动辄需要数月周期,高昂的技术门槛让许多中小企业和非技术团队望而却步。这种“需求多、成本高、周期长”的困境,成为企业创新发展的卡脖子难题。低代码开发平台作为一种以可视化拖拽为核心的快速开发系统,只需要通过拖拽组件、配置参数,面对复杂需求只需要编写少量代码就能快速构建应用系统,大大降低了技术门槛,也降低了企业的开发成本。JVS低代码平台作为一款面向企业的快速开发系统,以模型驱动为核心,通过可视化拖、拉、拽的方式,配置实现对象建模、页面设计和流程编排,零代码或结合少量代码,即可快速开发应用的一站式开发平台,能...
点赞
评论
收藏
分享
01-29 05:21
已编辑
Stanford University 算法工程师
网易造城!近80万平上海总部就位,2万员工将进驻上海
过去这一年,从行业的视角来看,网易可以说是处于一个调整阶段。一方面是自2024年下半年以来,网易内部掀起的“反贪风暴”影响犹在,2025年依旧能够频繁看到网易游戏业务团队调整的消息;另一方面,网易也在过去一年多时间内拿出了相应的爆款,包括2024年末上线即全球爆火的《漫威争锋》,以及2025年不断刷新最好成绩,并在海外掀起“中式武侠热潮”的《燕云十六声》。除此之外,我们还能看到网易下一代旗舰级产品《无限大》、《遗忘之海》也纷纷有了更多新动作……可以说,整个2025年网易的成绩足够突出,业务团队调整也一直在路上。而最近关于网易的另一个消息引起了GameLook注意,如果是上海游戏圈的同行应该都已...
点赞
评论
收藏
分享
2025-12-04 16:19
已编辑
字节跳动_前端开发实习生(实习员工)
天塌了!!!
刚找到实习 字节HR就给我打电话了 说我简历通过了可恶 之前BOSS直聘上的说我简历挂了明天好好准备 加油
解zj:
但是想想也挺好的 这么多天也面了挺多家公司 也越来越有感觉了 希望明天能有一个好的结果
发面经攒人品
点赞
评论
收藏
分享
01-06 16:58
北京交通大学 Java
字节效率还是高
三轮技术面+一轮hr面都是面完当天推进约面发offer其实还是有点累没缓过来面试前也没准备过有时候还甚至想着挂了再躺平一阵子25年下半年确实很伤心难过希望26年可以幸福一点吧
兄弟格局小了:
没有面经,因为没有考八股,都是40min实习+20min手撕和反问。都是面完30分钟hr约下一面,效率很高点个赞
点赞
评论
收藏
分享
01-29 17:28
深信服_JAVA研发工程师(准入职员工)
深信服内推,深信服内推码
🌟工作内容与氛围: 我作为实习生能够真正地参与到了小组项目的迭代工作,不是简单地打杂工作。目前我已经接触到两个专题的需求迭代,一个由我完全负责,另一个和leader一起开始需求分析。在短短地两个月内,我对产品认知的八股文(产品经理能力、产品经理工作内容等)有了自己真正的感受和认识,不再是简单地文字理解。当然,实习工作也是对自己产品全方面能力的不断提升。 我导师不仅在工作上能及时得解答我的疑问,也会关心生活上我的不便,比如因为体检报告未出推迟入职,leader会主动关心我实习住宿的问题;电话沟通发现我声音和平时不一样,会主动询问我是否感冒不舒服,是否需要请假休息等。深信服的理念之一“简单有爱”...
深信服公司福利 891人发布
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
一个普通人在985学计算机的四年
5239
2
...
面经 | 腾讯S3后台开发暑期提前批(一面)
2813
3
...
大家都是怎么背八股的?
2713
4
...
就算做开发用AI工具,面试也逃不掉八股和手撕
1947
5
...
钛动科技一面
1899
6
...
每天辣么多AI新项目,自己怎么跟得上呢
1726
7
...
27菜狗速通百度
1643
8
...
没关系,我的出租屋很曼妙
1507
9
...
Java高薪必备八股文:春招备战指南
1393
10
...
快手年终发得又多又早,这波是我羡慕了
1343
创作者周榜
更多
正在热议
更多
#
今年春招是金一银二嘛?
#
24678次浏览
233人参与
#
软开人,秋招你打算投哪些公司呢
#
175581次浏览
1299人参与
#
没关系,至少我的__很曼妙
#
10398次浏览
156人参与
#
帆软软件工作体验
#
9780次浏览
41人参与
#
牛客吐槽大会
#
9090次浏览
168人参与
#
AI求职实录
#
15399次浏览
372人参与
#
总结:哪家公司面试体验感最好
#
79517次浏览
445人参与
#
关于提前批我想问
#
265157次浏览
2298人参与
#
我的秋招“寄”录
#
414553次浏览
2930人参与
#
抛开难度不谈,你最想去哪家公司?
#
13476次浏览
209人参与
#
赚钱的意义在这一刻具象化
#
10559次浏览
207人参与
#
快手年终开大包
#
3337次浏览
46人参与
#
你的第一家实习公司是什么档次?
#
11400次浏览
129人参与
#
为什么有人零实习也能进大厂?
#
12604次浏览
229人参与
#
Prompt分享
#
16182次浏览
376人参与
#
1月小结:你过的开心吗?
#
4484次浏览
79人参与
#
十一月总结
#
76436次浏览
424人参与
#
实习工作,你找得还顺利吗?
#
564469次浏览
6664人参与
#
AI时代的工作 VS 传统时代的工作,有哪些不同?
#
14990次浏览
351人参与
#
小红书求职进展汇总
#
214436次浏览
1311人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务