首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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-29 21:47
海康威视_自动化开发工程师(准入职员工)
海康威视内推,海康威视内推码
分享一下自己对海康的感受,也在海康总部的3期。 之前看了网上的评论实属是有点吓人的,但是百闻不如一见自己终究是亲自感受了一下。 这可能是我国内外大大小小加起来的第6段实习或者工作。 海康首先给我的感觉是人真的好多,尤其食堂的人,我可能上学都没有见过这么多人,还有电梯,我每次坐是一头雾水。当然这些对于我来说都不是很重要。 可能很多人最关心的就是海康的工作强度和时间是不是真如网上说的那么严重,而通过这段时间的感受,我觉得海康可能是我节奏最慢的一次体验,完成了任务就可以开开心心的回家了,根本不需要无效加班,如果自己想学点产品类的知识还是可以在公司里多学一点的。 关于部门小组氛围,我一开始是有点惊讶的...
海康威视公司福利 1137人发布
点赞
评论
收藏
分享
10-29 11:53
已编辑
北京理工大学 算法工程师
无论文秋招——上海AI lab一面
项目询问没挖太深问了个PPO和GRPO DAPO的区别问了一个懂不懂vLLM和SGlang的实现问了一个ms-swift 和 VeRL各自设计上的优劣,我说VeRL用起来更方便,每个模块很清晰,ms-swift集成的太好了,不方便改问了一个宏观的问题:如果给你一个多模型后训练任务,怎么设计训练框架?我说两个点,一个是模型加载,需要考虑到适配不同的模型,方便未来的模型加入进来,另外一个是RL这一块,需要适配不同的算法,让用户自己可以比较灵活的去定义和修改算法,例如你实现了 PPO算法,能不能很方便的改成GRPO,DAPO,GSPO。面试官不太懂训模型这一块比较关心框架设计后面反问工作内容也是提到...
查看5道真题和解析
点赞
评论
收藏
分享
10-22 19:44
门头沟学院 Java
剪个头发的功夫 两个oc!
剪完头发一看手机 同时发了
面了100年面试不知...:
那我得去剪个头
点赞
评论
收藏
分享
10-23 15:27
华中科技大学 Java
字节主动联系,怎么办
我这两天刚下载boss,打招呼打了很多小厂(想练练手),但都没有回应。结果字节主动联系我,但我感觉八股还没准备充分,不想第一次面试就面字节,怎么办
迷茫的大四🐶:
太主动了,建议直接把off发我邮箱里
点赞
评论
收藏
分享
10-27 09:15
门头沟学院 人工智能
我的家人们,我真的没有被骗
2024年12月31日,我的offer给到了我的邮箱,同步,我也把这个喜讯给到我的家人们。当我爹妈看到我的薪资时:“你是不是被骗了哦,是不是哦?”“你莫去搞诈骗啊。”“他是不是多打了一个0哦。”超乎他们认知的工资,让他们忽略了偌大的菊花标志,认为我是一个心思单纯的小孩,质疑我的秋招结果。当我再三解释之后,我妈居然还在担心。“这么高的工资,工作压力不晓得好大。”“你要不还是留在重庆嘛,深圳那些地方压力大得很。”不过我在家里的话语权自我大二外出打拼一来,逐渐获得了家庭的主导权,我认准的事情,父母也没有办法干扰到我。经常也有人再问,我到底是干什么的。我是研发族-云服务技术-....-解决方案架构师我...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
造谣刑法老师媚男,反被老师法院起诉
1.4W
2
...
如果你的实习能重来一遍,如何让自己的实习利益最大化
1.1W
3
...
现在出海,是不是相当于十年前加入互联网?
9462
4
...
秋招小失败-后端小小劝退(大结局)
7305
5
...
抖音文娱二面挂面经-劝退后端第三天
5383
6
...
你们说,人会一直倒霉吗?
5209
7
...
9本秋招后端收获9+offer, 我做对了什么?
4713
8
...
一个大专学历15年IT之路的感悟
3949
9
...
什么,你在教我做事?
3739
10
...
挑战全网最早的美团开奖!
3226
创作者周榜
更多
正在热议
更多
#
校招生月薪1W算什么水平
#
31348次浏览
182人参与
#
哪一瞬间觉得自己长大了
#
37905次浏览
492人参与
#
“vivo”个offer
#
37989次浏览
279人参与
#
我是面试官,请用一句话让我破防
#
25481次浏览
125人参与
#
vivo工作体验
#
27597次浏览
123人参与
#
如果上班像打游戏,你最想解锁什么技能
#
7770次浏览
70人参与
#
工作后明白的那些道理
#
21388次浏览
222人参与
#
一人一个landing小技巧
#
123530次浏览
1441人参与
#
实习最想跑路的瞬间
#
87126次浏览
542人参与
#
中美关税战对我们有哪些影响
#
42362次浏览
359人参与
#
中美关系回暖,你会选择出海吗?
#
6034次浏览
105人参与
#
华为保温
#
107051次浏览
404人参与
#
i人适合做什么工作
#
10984次浏览
97人参与
#
读研or工作,哪个性价比更高?
#
77853次浏览
767人参与
#
哪些行业值得去?
#
5019次浏览
47人参与
#
美团开奖
#
217806次浏览
1130人参与
#
如果秋招能重来,我会____
#
36281次浏览
294人参与
#
华为池子有多大
#
110179次浏览
750人参与
#
AI时代,哪些岗位最容易被淘汰
#
3070次浏览
27人参与
#
国央企笔面经互助
#
161556次浏览
1182人参与
#
苦尽甘来时,再讲来时路
#
32310次浏览
452人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务