首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
暂无评论,快来抢首评~
相关推荐
11-16 19:35
门头沟学院 后端工程师
作业帮二面1h
📍面试公司:作业帮🕐面试时间:11.10💻面试岗位:go服务端开发❓面试问题:1.实习的业务和工作内容,接口响应时间2.手撕:全排列3.场景:设计排行榜,怎么维护和更新,使用redis或本地内存的技术选型和原因4.数据库:怎么建索引优化查询(覆盖索引和回表);什么原因导致更新某条记录时锁住整张表而不是单条记录5.redis:怎么查redis的key还有多久过期;redis应用场景;怎么更新缓存数据6.网络:session和cookie的应用场景;常见的HTTP状态码还记得哪些7.架构设计:服务端怎么校验客户端请求内容有没有被篡改;接口幂等性;接口响应慢可以怎么优化🙌面试感想:redis...
查看7道真题和解析
点赞
评论
收藏
分享
11-13 16:30
已编辑
腾讯云智研发_后台开发(实习员工)
数字马力一面
问的都很简单,但是好久没面试,紧张死了,回答的都不全,感觉要死1.用过那些ai工具2.ai对你有什么帮助3.做过那些ai项目,搭建过aidemo吗?4.抽象类和接口的区别5.一个线程持有锁,其他线程可以访问这个线程里面的属性吗6.synchroized的原理 和reentrantlock的区别7.接口太慢怎么排查8.线程池核心参数 工作原理9.springmvc 工作原理10.ioc和aop11.autowired和Resource的区别12.接口业务时间过长,导致缓存失效,怎么解决13.hashmap原理14.currenthashmap的原理15线程sumbit和execute的区别16....
PrintWrite...:
感觉是同一个面试官,基本上一样,我是周三面的。
点赞
评论
收藏
分享
11-06 13:30
南开大学 客户端开发
27届本9找日常实习,boss沟通三百投递十几面试0
信心受挫,感觉小厂也不招人,牛友们有什么主意吗,孩子十分需要帮助
蛋炒饭i:
27届211本投了一个月也0offer 已老实😂
点赞
评论
收藏
分享
09-26 12:58
扬州大学 嵌入式工程师
目前一个面试都没有,各位大哥,帮我看看简历有什么问题呢,已经开始慌了
大世界中的渺小一棵:
看出来你软硬都有基础,但是这样写简历软硬都擦边不知道你想投什么,建议针对岗位jd针对性修改下。
点赞
评论
收藏
分享
11-11 19:49
曼迪匹艾_人力资源部_HRBP(准入职员工)
MDPI内推,MDPI内推码
常见问题:3.加班吗 目前我是加班的,一般➕0.5-1h,加不加班主要看自己的进度和效率,刚入职,操作慢,一般会加班。 4.加班有加班费吗? NO,超过晚上七点🕖可以点一份工作餐(必须七点以后才可以点,需要5点之前点餐,如果你确定自己加班会超过七点,就可以点啦) 5.有KPI吗? 有的,入职3个月(发文15篇)和6个月(发文60篇)都要发文量要求。转正后每个季度30篇,超过30每篇奖励300💰。 6入职后有人带吗? 有的,入职后每个人都有师傅带,遇到的师傅就像读研选导一样,听天由命,幸运的遇到耐心负责的,运气差点的~,不过一般都还是很好的 7.公司环境如何? 和你在其他分享中看到的一样,女...
MDPI公司福利 441人发布
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
java零基础斩获4大厂offer
6461
2
...
《办公室恋情,被我抓住了》
3389
3
...
【奖】别再瞎猜!26校招真实薪资大揭秘,帮你快速避坑!
3284
4
...
我父母让我忍受所有工作上的欺辱
3180
5
...
进大厂是因为老家找不到工作
3040
6
...
快手员工自费给+2庆生?太带派了烙铁
2901
7
...
月薪多少才能过上"体面生活"
1988
8
...
携程你倒是动一动呀
1456
9
...
秋招收尾 0offer如何备战大厂春招
1425
10
...
27届学院本两段实习后的职业规划再思考
1346
创作者周榜
更多
正在热议
更多
#
我的职场社死时刻
#
5330次浏览
74人参与
#
你最满意的offer薪资是哪家公司?
#
51348次浏览
260人参与
#
小红书开奖了
#
9363次浏览
63人参与
#
职场中那些令人叹为观止的八卦
#
5625次浏览
76人参与
#
聊聊你的职场新体验
#
293664次浏览
1807人参与
#
月薪多少能在一线城市生存
#
88418次浏览
598人参与
#
百度秋招
#
42591次浏览
357人参与
#
中科曙光工作体验
#
4503次浏览
22人参与
#
那些年,我收到的‘奇葩’回复
#
3155次浏览
34人参与
#
秋招吐槽大会
#
29676次浏览
283人参与
#
租房前辈的忠告
#
270506次浏览
7161人参与
#
秋招你经历过哪些无语的事
#
3693次浏览
50人参与
#
XX请雇我工作
#
4426次浏览
62人参与
#
你秋招最后悔的选择
#
4774次浏览
49人参与
#
假如你的老板掉河里,你的工作能为他做什么
#
39136次浏览
400人参与
#
你找工作想离家近 or 离家远?
#
5042次浏览
81人参与
#
交通银行工作体验
#
20329次浏览
68人参与
#
京东工作体验
#
21265次浏览
120人参与
#
哪些公司开始补录了
#
4475次浏览
67人参与
#
你父母给过你哪些不靠谱的职场建议?
#
5731次浏览
84人参与
#
如何拒绝/反向PUA
#
81496次浏览
366人参与
#
谈薪时HR压价该怎么应对
#
241568次浏览
3299人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务