首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
暂无评论,快来抢首评~
相关推荐
07-25 10:44
米哈游_构建开发(实习员工)
百度提前批一面:面试官居然让我手撕两数之和???最奇幻的一轮面试,结束还说.......
太过于玄幻的一次面试经历了。。。。基本信息:bg9本,两端实习经历,一段游戏大厂,一段小厂后端。面的是百度后端的职位。上来先是自我介绍,然后然后问了我在实习的经历,鼠鼠我就开始念经把自己觉得有技术深度的说了一下。然后问我的比赛的经历,由于是C++开发所以问了关于是如何实现算法的,然后我说了一大堆介绍路径规划的内容。接下来是问比赛团队协作的问题,团队是如何沟通的,我是承担一个怎样的角色等等常规问题。紧接着就是八股盛宴:常见的数据结构是什么,分别介绍;图结构的特点,迪丽斯克雷算法是做什么的如何实现的;什么是面向对象,有什么特征;Redis的内存淘汰和策略是什么;进程和线程的区别是什么;这些八股都挺...
黑皮白袜臭脚体育生:
两数之和都来了,判你赢得了
查看14道真题和解析
点赞
评论
收藏
分享
07-28 12:55
北京科技大学 C++
时间过得好快 马上秋招就要开始了
作为25届的小菜鸡给大家一些建议。一、一定要明确自己的求职方向先思考自己想做什么职业/行业和自己适合什么样的行业/职业;各位同学可以也观察自己专业以往的就业趋势,思考自己专业的就业方向,也可以多和同专业的学长学姐沟通交流;要自己有一个大致的求职方向,明白自己适合什么样的工作。怎样才能知道自己适合什么样的工作呢?其实最直白的方法还是!实习!不管你是要从事自身专业的工作还是想要跨专业求职,只有深入实践,对你的职业规划进行一个先行体验的大动作,你才能晓得你到底适不适合,你所学的专业知识和技能,是否能够运用在工作生活中。所以还没有实习经历的26届同学们,抓住毕业前的机会,多积累含金量较高的实习~不仅可...
点赞
评论
收藏
分享
06-03 20:53
门头沟学院 Java
瑞**啡,不用面试,直接入职!
hr加我好友,直接通知我入职😳😳😳一脸懵,我没面过试啊,我都不记得投了这个。以为是招聘服务员的。回家一查,发现投过他家的厦门Java,投递日期已经过去了一个月,还是“简历筛选中”😰😰原来是同名的入职了,估计是筛选条件弄错了😪😭世界是一个巨大的草台班子难过,名字都一样,为什么不过我(怒吼)
梦想去阿里的冰棍:
《没准过两年就有面试了》,扎心了老铁
点赞
评论
收藏
分享
今天 12:00
上海大学 硬件开发
韶音科技
勇敢牛牛不怕困难,希望能过初筛
投递韶音科技等公司10个岗位
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
都是 dirty work,为什么别人的简历上就能言之有物🤔
2.4W
2
...
团孝子启动ing!
3338
3
...
干活最少的实习生因为长得漂亮转正了
3100
4
...
【07.29更新】能救一个是一个!26届毁意向毁约裁员黑名单
3060
5
...
虾皮后端一面(已挂)
2588
6
...
最近是各位大佬离职回去准备秋招了嘛,鼠鼠最近投的实习居然都有回应了,基本上当天投的两天之内都能有回应,要是秋招能有这样就太好了呜呜,简单记录一下吧。7月23日:快手-平台消费(一面)1.实习介绍(干了
2357
7
...
令人心动的offer!!!
2246
8
...
问问各位大佬
2135
9
...
26滴滴秋招提前批Java一面
1951
10
...
QQ提前批一面凉经
1867
创作者周榜
更多
正在热议
更多
#
你遇到最难的面试题目是_
#
9273次浏览
120人参与
#
分享一个让你热爱工作的瞬间
#
32472次浏览
338人参与
#
中兴秋招
#
198469次浏览
2232人参与
#
工作中哪个瞬间让你想离职
#
53621次浏览
466人参与
#
工作压力大怎么缓解
#
94175次浏览
995人参与
#
你最讨厌面试问你什么?
#
17403次浏览
211人参与
#
腾讯大前端岗位热招中
#
147次浏览
1人参与
#
26届的你,投了哪些公司?
#
24478次浏览
294人参与
#
多益网络求职进展汇总
#
31607次浏览
141人参与
#
我对___祛魅了
#
34045次浏览
324人参与
#
简历上的经历如何包装
#
15345次浏览
538人参与
#
你跟室友的关系怎么样?
#
4432次浏览
77人参与
#
第一份工作应该只看薪资吗
#
158899次浏览
1565人参与
#
如何快速融入团队?
#
12337次浏览
147人参与
#
和同事相处最忌讳的是__
#
16797次浏览
164人参与
#
什么样的背景能拿SSP?
#
18808次浏览
138人参与
#
机械人的金三校招总结
#
35791次浏览
461人参与
#
饿了么求职进展汇总
#
64314次浏览
636人参与
#
打工人的精神状态
#
68707次浏览
1117人参与
#
秋招前后对offer的期望对比
#
302574次浏览
2223人参与
#
我和mentor的爱恨情仇
#
62116次浏览
379人参与
#
实习生活中那些难忘的瞬间
#
165694次浏览
2459人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务