首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
暂无评论,快来抢首评~
相关推荐
昨天 10:10
门头沟学院
没逗你,真没跑路
朋友和我说他公司新来了同事,第一天来的时候下班下了很大的雨,朋友要借他伞,他死活不要,结果第二天就没来了。真的有点想笑上个星期我闲着,把工位上积灰的手办一个个收进纸箱,准备带回去换一批来摆。刚清理完桌子,隔壁同事探头看了一眼,又假装没看到继续工作了,不小心和我对视上他还尴尬的笑了笑我愣了下才反应过来,他以为我要跑路了。场面一度非常尴尬我解释,是准备换几个手办换个心情。也真没动过跑路的念头,公司有双人间宿舍,柜子里已经塞下我的全部家当,春夏秋冬衣服、各种零食全往里怼了。踩起拖鞋五分钟就到工位了,反正巨人园区里非常方便,健身房这些运动场所都免费开放,也有食堂。作为美术佬对于舒适这点根本无法抵抗,而...
投递巨人网络等公司6个岗位
点赞
评论
收藏
分享
12-11 13:59
搜狐畅游_游戏策划工程师(准入职员工)
安克创新内推,安克创新内推码
工作真实感受【Work in Anker】 🌟入职流程:非常顺畅,会有HR专门为你办理入职手续,然后会有你的mentor,leader,hrbp或者其他同事引导你去领取工作资产(Windows和Mac系统都有)并且带你去工位。我的mentor第一天就请我喝了咖啡吃了饭~开心🥳 🎁入职礼物:入职礼物有anker的马克杯,帆布袋,校招生还有安克的充电宝(图4)!安克的充电宝原来真的这么小一只,怪不得叫口红充电宝,而且CMF做的深得我心,颜色都好好看哇! 💻办公系统:像字节,蔚来,小米等公司一样,anker同样使用飞书办公系统,用过飞书的都知道哈,飞书非常高效,用户友好,有了飞书办公效率杠杠...
安克创新 Anker公司福利 817人发布
点赞
评论
收藏
分享
11-23 15:14
中原工学院 Java
27届简历求指导
想找个寒假实习
程序员花海_:
实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞
评论
收藏
分享
10-28 16:57
门头沟学院 Java
二面没过
就差一点点,可惜啦😔面试前面答的都挺好,后面开始问我的实习项目,可惜实习公司没给我派很多事情,答的不好。唉~😭
点赞
评论
收藏
分享
12-11 19:34
南昌大学 全栈开发
题解 | 包含所有三种字符的子字符串数目
题干分析:题目意思直接明了,即计数一个只包含小写字母a,b,c的字符串种找到有多少包含a,b,c三种字符的子串.算法思路:不难意识到,任何包含包含a,b,c三个字符的子串的子串都是符合题目要求的子串,人话就是在最小的包含a,b,c三个字符的字串基础上拼接所有其他字符或字符串均符合题意.由此我们使用双指针并从头(left = right = 0)开始寻找,到第一个符合要求的字串,之后符合要求的字串数目就是n(字符串总长)-left,找下一类型的字串时移动right即可继续寻找操作.实现代码: int numberOfSubstrings(string s) { int n = static_ca...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
双非本硕客户端总结/经验贴
6634
2
...
有些事真是只有工作了才知道。。
6368
3
...
爱情?事业?应作如是观
4824
4
...
2025年12月16日 多年之后 我又梦到那天
4824
5
...
【求助】前端实习生入职,但公司0个前端正职,这种情况正常吗?
4370
6
...
双非鼠鼠秋招有感
4181
7
...
28届到底选什么方向合适
3622
8
...
为什么上班这么痛苦?其实无非这四种内耗
3351
9
...
数字马力ai岗
2907
10
...
签下三方时我没有任何情绪波动,继续努力向前行
2656
创作者周榜
更多
正在热议
更多
#
mt对你说过最有启发的一句话
#
4061次浏览
68人参与
#
考研失败就一定是坏事吗?
#
160565次浏览
1140人参与
#
被上班搭子“传染”了哪些习惯
#
1604次浏览
50人参与
#
今年秋招你收到了多少封邮件?
#
3717次浏览
77人参与
#
工作后,你落下了哪些病根
#
3999次浏览
101人参与
#
秋招特别不鸣谢
#
3052次浏览
46人参与
#
非技术2024笔面经
#
446524次浏览
4911人参与
#
选实习,你更看重哪方面?
#
3114次浏览
59人参与
#
工作后明白的那些道理
#
36401次浏览
493人参与
#
什么是优秀的实习经历
#
1333次浏览
52人参与
#
巨人网络求职进展汇总
#
181528次浏览
1214人参与
#
摸鱼被leader发现了怎么办
#
77157次浏览
449人参与
#
工作中遇到的歹人
#
6270次浏览
117人参与
#
你见过最离谱的招聘要求是什么?
#
246462次浏览
1697人参与
#
秋招感动瞬间
#
109717次浏览
497人参与
#
选完offer后,你后悔学机械吗?
#
49293次浏览
270人参与
#
当发现同事想辞职
#
12385次浏览
39人参与
#
校招泡的最久的公司是哪家?
#
46021次浏览
172人参与
#
分享一个让你热爱工作的瞬间
#
53357次浏览
467人参与
#
上班到公司第一件事做什么?
#
115557次浏览
811人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务