首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
暂无评论,快来抢首评~
相关推荐
不愿透露姓名的神秘牛友
昨天 17:26
投了一个月0实习offer
好想哭都不知道找谁哭,我真的那么差劲吗。bg985本大二,同学有的去大厂实习了有的要留学回家了...我招聘软件加起来投了400多个要么说我没有实习经验,要么说我性格内敛不适合,我真的...但是暑假在南方有事又回不了家,好想哭...(已经哭了)
码农索隆:
我就问一下,你性格真内向吗
点赞
评论
收藏
分享
不愿透露姓名的神秘牛友
07-01 16:05
字节日常实习拿下offer
从接到hr电话到今天算起,几乎正好一个月,终于尘埃落定,6月3日接到的电话,准备面试6,10一面6.17二面6.23三面6.27追加HR面6.30OC今天offer
点赞
评论
收藏
分享
06-11 13:34
门头沟学院 C++
0实习双非进大厂,我做了什么
做梦
offe从四面八方来:
我真的没时间陪你闹了
点赞
评论
收藏
分享
05-12 13:40
已编辑
电子科技大学 Python
我宣布我是最蠢最霉的暑期实习生
我宣布我是最霉最蠢的暑期实习生,事情是这样的:五一前一周面了百度的二面,感觉面的还不错,但是一周后官网面试挂了,百度4月30暑期实习截止了,后面就投了日常实习,很快进简历筛选了,但是昨天一个面试官打电话来跟我约3面,我说我不是挂了吗,怎么还会有三面,然后面试官就说再问问hr。挂了电话我越想越不对,感觉还有一线生机,我就死皮赖脸的打电话去问面试官要机会,然后面试官这样回我的(面试官超级好,帮我问了hr还反馈了)。我宣布 是世界上最好的大厂,给我个机会吧,球球了重铸百度荣光,我辈义不容辞5.8更新:下午联系了hr帮我解锁了简历,然后顺利三面完了,许愿一个百度offer5.12更新:上午hr联系oc(hr还嫌弃我的实习时间3,4个月太短),下午就发offer了,我宣布百度是宇宙大厂。
学也学不动玩也玩不爽:
我百度三面完半个月没给结果,发邮件问hr也不回 麻了嗷
点赞
评论
收藏
分享
07-01 14:03
厦门大学 单片机
高考出分的前一天
这个话题很有历史性了!2018年6月23日我记得好像是周五,班主任说22:00开始就能查成绩了,但是一直一直查不到,可能是因为人太多了系统瘫痪了,刷新了好久,我干脆不刷了,摆烂了干脆,我自己出去溜达溜达,因为是农村,当时家里还是那种小土路,我溜溜达达的就到我奶奶家了,因为在一个村,但是很晚了,我就没去打扰,我自己做着村外的大树底下,想了很多事情,我万一考砸了怎么办?我考的很好会不会成为家里人的骄傲?老老实实的上学这么多年,我要不要离家远一点?其他的就记不清了,几点回的家我也不记得了,我只记得是凌晨3点家里人都睡了,我查出了我自己的分数684分!高到我自己都失声尖叫!把爸妈给折腾起来看我的位数,...
高考出分的那一天,我__
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
实习周报不要再写流水账了
4.3W
2
...
算一笔账
9672
3
...
快手凉经
8819
4
...
毕业之后再也没人给我兜底了
8660
5
...
差点忘了以前是干嘛的,这个梗就是2025年最大的一坨
8463
6
...
工资还是得攒着
6257
7
...
高德-交易业务-Java日常-面经(OC)
4553
8
...
字节暑期实习刚oc要不要去
3858
9
...
这样的实习,我还有必要坚持下去吗?
3633
10
...
制造业提前批合集(个人版,大伙速投哇
3615
创作者周榜
更多
正在热议
更多
#
如何准备秋招
#
11095次浏览
192人参与
#
软开人,秋招你打算投哪些公司呢
#
100884次浏览
945人参与
#
现代汽车前瞻技术研发急速编程挑战赛
#
22337次浏览
185人参与
#
你觉得实习能学到东西吗
#
16083次浏览
381人参与
#
秋招什么时候开投比较合适?
#
6741次浏览
146人参与
#
实习,不懂就问
#
28040次浏览
450人参与
#
每个月的工资都是怎么分配的?
#
14269次浏览
312人参与
#
你觉得实习只能是打杂吗?
#
192425次浏览
1223人参与
#
你们公司几号发工资
#
18951次浏览
128人参与
#
你觉得现在还能进互联网吗?
#
4562次浏览
99人参与
#
非技术岗简历怎么写
#
216843次浏览
2918人参与
#
预测一下26届秋招形势
#
24628次浏览
239人参与
#
技术岗笔试题求解
#
75442次浏览
974人参与
#
你最近一次加班是什么时候?
#
67854次浏览
346人参与
#
高考出分的那一天,我__
#
16404次浏览
267人参与
#
聊聊你的职场新体验
#
161407次浏览
1391人参与
#
打工人的精神状态
#
54037次浏览
987人参与
#
大家实习每天都在干啥
#
82859次浏览
506人参与
#
米哈游工作体验
#
17767次浏览
116人参与
#
来聊聊你认为的薪资天花板是哪家?
#
30869次浏览
174人参与
#
机械实习一天多少钱合适?
#
28978次浏览
176人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务