首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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-21 12:09
思摩尔国际(SMOORE)_IT开发工程师(准入职员工)
思摩尔内推,思摩尔内推码
思摩尔结构工程师一面一面技术面,面试官比较年轻,共23min1、面试官上来要求先说说你对思摩尔的了解2、自我介绍3、针对第一个项目的提问:项目背景?你承担的工作?你在项目中遇到的问题?你最大的收获?这些项目中设计的产品有在企业中应用过吗?没有应用的原因你觉得是什么?4、针对第二个项目的提问:在项目中成员有分歧怎么办?有人不配合怎么办?5、除了学校学习和项目科研的内容,你最近有学习过什么新技术吗?6、反问环节(最长的一次)面试官详细介绍了工作内容后续流程,还有总部的一轮面试思摩尔国际2026全球校园招聘倒计时❗还没拿到offer的同学抓紧时间⏰【急招岗位】①技术研发类硕士(24-30W):产品企...
点赞
评论
收藏
分享
今天 14:52
河北师范大学 算法工程师
MetaApp Android开发实习生 二面面经
📍面试公司:MetaApp🕐面试时间:2/24💻面试岗位:Android开发实习生❓面试问题:一、项目经历深挖类(核心考察项目真实性、技术细节掌握度、安卓开发基本功)之前是有一些安卓的项目制作经验,是吧?我看你简历里有一个即时通讯项目,还有另外两个项目都是后端的,对吧?你在这个即时通讯项目里,主要做了哪些安卓相关的工作?项目里用到的room数据库,是用来存储哪些数据的?会话信息是怎么存储的?聊天的历史记录信息,是存在这个数据库里吗?聊天记录的数据结构是什么样的?消息类型里包含视频类型对吧,那视频类型的消息会有哪些字段?视频这块的功能是别人写的还是你写的?那图片类型的消息有哪些字段?请你从...
查看54道真题和解析
点赞
评论
收藏
分享
01-19 18:53
已编辑
蚌埠坦克学院 Java
被mentor温暖到了
实习第三天了,讲讲感受吧,mentor每天都会喊我一起去食堂吃饭,会给我推荐哪家的好吃,吃完饭还会等我,经常没事,会来问我有没有问题,有问题随时来找他。看到我就一个电脑分屏比较困难,还帮我安排了一个新的显示器,可以看下面的图,到现在都没给我派什么任务,让我先熟悉。反正,心里暖暖的
飞屋一号:
碰到这样的mt可以直接托付终生了
点赞
评论
收藏
分享
01-26 12:25
科大讯飞_智慧医疗架构平台部_助理软件开发工程师(实习员工)
大家是实习期间是怎么保持面试状态的
如题,楼主最近找了家小厂实习,每天任务蛮多的,虽然也有时间去背八股刷题,但是相比在学校每天全身心的投入背八股和刷题,真的差太多时间分配上很碎片化,有时候刷着刷着题,mt 提个需求就需要去忙他那边的问题,忙完回来接着学,然后又有其他问题下班回宿舍也没啥状态再学了,回宿舍就只想躺平😅
小肥罗:
回宿舍,每天花半个小时,一个小时学习一下,日积月累,你就学到很多啦
点赞
评论
收藏
分享
02-21 16:28
上海交通大学 算法工程师
HTTP 和 HTTPS 区别
面试题简述我们平时开发时经常看到 HTTP 和 HTTPS,那你能说说它们之间的区别吗?为什么我们要用 HTTPS?它到底比 HTTP 多了什么?面试官想听的1、HTTPS 如何在 HTTP 基础上增加安全保障2、是否理解加密、认证、完整性的区别;3、能否举例说明浏览器访问网站时两者的不同面试回答举例HTTP 和 HTTPS 本质上都是应用层协议,用于浏览器与服务器之间传输数据。两者的区别在于:HTTP 是明文传输,而 HTTPS 在传输层加入了 SSL/TLS 加密层,实现了数据的加密、身份认证和完整性校验。举个例子:当我们访问 http://example.com 时,所有请求与响应的数据...
查看6道真题和解析
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
实习租房焚决
5202
2
...
你们开工红包发了多少?评论抽2人送外卖券
2623
3
...
2月24日开工限时福利!来领!
2178
4
...
开水加点🍬
1734
5
...
雷军亲自发开工红包,挺有排面
764
6
...
看到百度开工红包发了888,这波🍋了
708
7
...
组长说这是百度十年来第一次,我没绷住
634
8
...
百度开工发了2千多块的红包
607
9
...
没想到我因为一件“小事”彻底破防了
568
10
...
前端转大模型应用开发
553
创作者周榜
更多
正在热议
更多
#
xx岗简历求拷打
#
1647次浏览
22人参与
#
金三银四,你有感觉到吗
#
687177次浏览
6071人参与
#
有转正机会的小厂实习值得去吗?
#
2469次浏览
37人参与
#
携程求职进展汇总
#
874177次浏览
5679人参与
#
你最讨厌面试被问什么
#
3727次浏览
46人参与
#
哪些公司开春招了?
#
28495次浏览
191人参与
#
秋招踩过的“雷”,希望你别再踩
#
187003次浏览
1692人参与
#
机械制造2024笔面经
#
1540241次浏览
13005人参与
#
毕业季等于分手季吗
#
54392次浏览
649人参与
#
牛客租房专区
#
157026次浏览
1761人参与
#
26届的你,投了哪些公司?
#
256320次浏览
1686人参与
#
文科生还参加今年的春招吗
#
13001次浏览
98人参与
#
找实习多的是你不知道的事
#
1805242次浏览
20690人参与
#
反问环节如何提问
#
131997次浏览
2702人参与
#
大家每天通勤多久?
#
86584次浏览
838人参与
#
记录实习开销
#
187668次浏览
973人参与
#
校招笔试
#
417415次浏览
2797人参与
#
找工作中的小确幸
#
81475次浏览
451人参与
#
正在实习的你,几点下班
#
300112次浏览
2212人参与
#
如何缓解入职前的焦虑
#
261197次浏览
1466人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务