首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
暂无评论,快来抢首评~
相关推荐
02-07 02:45
已编辑
字节跳动_后端开发
工作两年了,一些小的感想
从实习到现在,感觉自己运气一直特别不好,从来没有遇到过负责的 mentor,一个好的 mentor 真的真的真的特别的重要,如果暑期实习能遇到一个特别好的 mentor,在公司级别差不多的情况我不建议去一个全新的环境,哪怕工资高了几 k,工资超过30k以后那几 k 差距税后没那么大。 第一段实习去的一个小厂,被分配的 mentor 是一个工作了很多年的老油条,问他一点东西都是非常的不耐烦,有一次另一个组的同事当着我的面说"这就是 X 大来的那个啥都不懂的实习生?",我是一个很敏感的人,这算是给我留下的第一个小阴影吧,反而是我旁边的大哥帮助我很多,我至今还记得他的好。 第二段实习也是一个小厂,这...
职场上哪些行为很加分?
点赞
评论
收藏
分享
02-07 12:37
复旦大学 Java
字节跳动春招年前这么快就启动了???
字节的春招大概率应该是有笔试的,26届没拿到满意Offer的同学可以抓紧时间冲一下,其实春招好的岗位也不少,能开大包的概率也不低,还有一个好处就是很多26届拿到满意Offer的同学躺平了也没有精力去准备,这个时候竞争压力就小很多!首先就是多准备下笔试题,关于大厂笔试题的考核范围我之前专门出过一期,可以参考下:https://www.nowcoder.com/feed/main/detail/20e7a999fa04485b88340a274411ca0d?sourceSSR=users另外多刷下牛客的热门题库,刷题注意刷ACM模式,和牛客的周赛题,有的部门会从这里面出原题。另外经过秋招的面试,...
点赞
评论
收藏
分享
02-06 12:12
重庆大学 Java
字节三面
总的来说,这是一场收获很大的面试,感觉面试官不是以老员工的角度来拷打我,而是以一个引路人的视角带着我去思考一些场景问题,用一些真实场景来向我展示平时所学应该如何应用,然后问问题也都是笑着和我聊天那种问法,感觉是一个很有人格魅力的人,就是在他面前基本上说不了谎,而且感觉他更喜欢那种真诚地回答以及真实的思考,真的对我自己有很大的帮助,真的给字节点个大大的赞
发面经攒人品
点赞
评论
收藏
分享
01-07 17:13
广州大学 前端工程师
来点多益笑话
真的没绷住,小心眼这块,这就破防了也是没绷住🤣
优秀的大熊猫在okr...:
多益:此贼,必有同谋,按律,该当连坐!
你不能接受的企业文化有哪...
点赞
评论
收藏
分享
昨天 11:20
曼伦商贸_供应链管理(准入职员工)
OPPO内推,OPPO内推码
关于工作环境:base深圳前海 内部配置绝了。一整栋50层都是oppo哒,我的工位可以看到欢乐港湾和大海,零食柜自给,很感动的是每层都提供独立的隔音室,3层饭堂里,23楼是最好吃的 周边很繁华。楼下三层是大商场,午饭后我一般会和其他实习生姐妹去citywalk,好多奶茶店,茶救,奈雪 喜茶,瑞幸,奶白,煲珠公每天换着喝,好幸福 关于工作氛围 感受到相当年轻,相当扁平的氛围,我们组(销售运营部)有三个哥哥姐姐直接对接我,她们人真的很nice,笨笨的我不会时,问她们都会耐心解答~~ 关于工作内容 感觉出入还是有的,问了哥哥姐姐,他们收到五六十份简历,面了6个,最后选了我,好感动好幸运。偏大客户运营...
OPPO公司福利 1202人发布
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
面试官视角聊聊:如何通过Agent面试
4246
2
...
明天回家过年!
2058
3
...
27双非字节实习oc
2023
4
...
字节后端三面面经
1479
5
...
三月中才开始投实习,五月上岸大厂,我是怎么准备的
1191
6
...
27字节agent开发实习一面
1011
7
...
春节放假最惨的还是实习生
936
8
...
决定接成方金科offer了
899
9
...
7个月年终奖,东哥没把兄弟当外人
773
10
...
已经好久没投了
763
创作者周榜
更多
正在热议
更多
#
春招什么时候投?
#
10669次浏览
180人参与
#
牛友的春节生活
#
7902次浏览
166人参与
#
春节前,你还在投简历吗?
#
14317次浏览
166人参与
#
从夯到拉,锐评职场mentor
#
5180次浏览
80人参与
#
牛客AI体验站
#
14858次浏览
267人参与
#
春节提前走,你用什么理由请假?
#
10527次浏览
247人参与
#
实习到现在,你最困惑的一个问题
#
4607次浏览
133人参与
#
备战春招/暑实,现在应该做什么?
#
5154次浏览
160人参与
#
怎么给家人解释你的工作?
#
51572次浏览
208人参与
#
工作后,你落下了哪些病根
#
32375次浏览
277人参与
#
上班摸鱼,你都在干些什么?
#
39141次浏览
246人参与
#
机械制造秋招总结
#
103308次浏览
886人参与
#
没有家庭托举的我是怎么找工作的
#
35720次浏览
266人参与
#
距离春招还有一个月,你现在是什么开局?
#
7072次浏览
116人参与
#
今年秋招你收到了多少封邮件?
#
37628次浏览
278人参与
#
暑期实习什么时候投?
#
7249次浏览
171人参与
#
聊聊Agent开发
#
25146次浏览
601人参与
#
一起聊华为
#
191743次浏览
895人参与
#
什么是优秀的实习经历
#
35959次浏览
387人参与
#
面试经验谈
#
406417次浏览
7217人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务