首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
暂无评论,快来抢首评~
相关推荐
今天 15:04
浙江大学 算法工程师
C++面试八股文(Qt 界面开发)
1. Qt中有哪些常用的布局管理器?Qt 提供了几种常用的布局管理器,用于自动管理控件的位置和大小:QHBoxLayout:水平布局,将控件从左到右排列。QVBoxLayout:垂直布局,将控件从上到下排列。QGridLayout:网格布局,控件按照行和列排列,适合复杂布局。QFormLayout:表单布局,自动将标签和控件(如文本框)按表单格式排列。QStackedLayout:堆叠布局,可以堆叠多个控件,只有一个控件可见。QSplitter:分割布局,允许动态调整控件的大小,常用于分隔不同区域。这些布局可以组合使用,适应不同的界面需求。2. 如何实现自定义控件?实现自定义控件通常有以下步骤...
C++八股文全集
点赞
评论
收藏
分享
01-28 23:10
点点互动_产品管理工程师(准入职员工)
点点互动内推,点点互动内推码
25 秋招|点点互动+一面,广告创意从**就能看出来这家公司对文科生非常友好三大模块,一共六道问答题,主要考察候选人对游戏、广告、各大社交平台的认识和理解,以及回答问题的逻辑。回答这类问题的时候建议结合题干和应聘岗位的特征作答。比如其中一个问题是:【如果让你选择一个平台去做自媒体,你会选择哪个平台?】我的回答模式:首先说明我选择的平台,接下来分析该平台的优势,包括平台运作方式、用户群体方向、内容特点等,中间也花了一两句话介绍了自己的兴趣和个人优势(爱写+深度冲浪选手)。9.10 刚刚结束了这家游戏公司广告创意策划岗的一面,感觉还不错!根据上次的面试反思,主要【改进了自我介绍的格式】,并在面试前...
点赞
评论
收藏
分享
01-08 13:17
西南大学 运营
完蛋啦,面评很脏了
各位大佬能指点一下吗😭😭寒假找实习投了一百多个了,只有快手有一个面试结果还在一面挂了是不是因为十月份疯狂海投结果字节三次一面挂,网易挂两次脏了面评啊
叁六玖:
学校和简历都好,只投了100多个感觉有点少哈,牛友多投点
面试太紧张了怎么办?
点赞
评论
收藏
分享
01-23 17:59
已编辑
赤峰学院 Java
苍穹外卖都没学完 字节直接oc?
对不起各位,标题党了。最近几天都在找实习,今天下午面试了一个后端开发岗,一上来就叫我写力扣。有一个不会换了一道题写出来了,但是整体给面试官的感觉还是不太行,也深深知道了自己在这方面有很多欠缺。不出意外的话,今天下午面试应该是挂掉了。我现在有一个问题,想了想问大佬们。 我现在手上有一个51word的offer,它的方向是 自动驾驶仿真场景和AIGC ScenarioCopilot。但是我主要现在还是想找一个JAVA后端开发的日常实习,因为一直在学java。不知道该怎么选了,求大佬们支招。另外下面是我的简历,大佬们看看有没有需要修改的地方。学生管理系统就是苍穹外卖改版,当时都没学到redis,学完增删改查就开始投了。二更:麻烦大佬们看看我最新的帖子,看看我该选哪个
李橙子:
你这如果想找java方向的,那你的项目就不要写python啊,不然会以为你是主要找python的
点赞
评论
收藏
分享
昨天 16:51
清华大学 Java
除了java最推荐学python
除了 Java,我最推荐学习 Python。Python 语法简洁、易上手,非常适合快速实现想法。它在数据分析、人工智能、机器学习领域占据主流地位,同时在 Web 开发和自动化脚本方面也非常高效。学习 Python 不仅能扩展技术视野,还能在实践中快速提升解决问题的能力,是 Java 程序员进阶的理想选择。
除了Java,最推荐学什...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
一个普通人在985学计算机的四年
7141
2
...
面经 | 腾讯S3后台开发暑期提前批(一面)
3091
3
...
人均AI Coding后,程序员面试还有必要问八股吗
2798
4
...
大家都是怎么背八股的?
2761
5
...
每天辣么多AI新项目,自己怎么跟得上呢
2555
6
...
钛动科技一面
2275
7
...
27菜狗速通百度
2242
8
...
没关系,我的出租屋很曼妙
2140
9
...
就算做开发用AI工具,面试也逃不掉八股和手撕
1935
10
...
快手年终发得又多又早,这波是我羡慕了
1841
创作者周榜
更多
正在热议
更多
#
今年春招是金一银二嘛?
#
23887次浏览
232人参与
#
软开人,秋招你打算投哪些公司呢
#
175363次浏览
1296人参与
#
没关系,至少我的__很曼妙
#
10027次浏览
153人参与
#
AI求职实录
#
14980次浏览
366人参与
#
赚钱的意义在这一刻具象化
#
10345次浏览
205人参与
#
帆软软件工作体验
#
9673次浏览
41人参与
#
关于提前批我想问
#
265098次浏览
2298人参与
#
我的秋招“寄”录
#
414415次浏览
2930人参与
#
总结:哪家公司面试体验感最好
#
79482次浏览
445人参与
#
抛开难度不谈,你最想去哪家公司?
#
13116次浏览
208人参与
#
快手年终开大包
#
3304次浏览
46人参与
#
你的第一家实习公司是什么档次?
#
11071次浏览
126人参与
#
为什么有人零实习也能进大厂?
#
12279次浏览
223人参与
#
牛客吐槽大会
#
8814次浏览
130人参与
#
1月小结:你过的开心吗?
#
4400次浏览
79人参与
#
AI时代的工作 VS 传统时代的工作,有哪些不同?
#
14818次浏览
351人参与
#
十一月总结
#
76410次浏览
424人参与
#
实习工作,你找得还顺利吗?
#
564440次浏览
6664人参与
#
小红书求职进展汇总
#
214423次浏览
1311人参与
#
当你问AI“你会取代我的工作吗”,它说_?
#
7855次浏览
225人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务