C_and_CPP 板


LINE

先说是面试题 所以会有一些奇怪的写法 晚辈还是刚入行的新人 若有冒犯 请见谅 1. class A { public: virtual void foo(int a = 0) { printf("A %d\n", a); } }; class B : public A { public: virtual void foo(int a = 1) { printf("B %d\n", a); } }; A *p = new B(); p->foo(); 我答结果是 B 1 面试官说你回去试试看 结果回家测试的结果是 B 0 我可以理解virtual function的用法 但是唯独那个a我并不能理解为什麽是0... 2. struct test { int a; char b; short c; double d; char e; }; test这个大小是多少? 我可以理解关於记忆体对齐的问题 所以我答总共是24 bytes 面试官接着问为什麽是24 以及那他们在系统内的记忆体位置是如何? 我回答 int 4 char 4(对齐後) short 4(对齐後) double 8 char 4(对齐後) 所以总共是24 (我的概念可能有错...) 他说24是对的 但是位置的概念不正确 叫我回去测试看看 我回家测试(以下都起始位置) a 9435088 b 9435092 c 9435094 d 9435096 e 9435104 我理解可能char short那边可能答错了 但是即便是这样 e那个位置对齐以後末三码应该是108 88到108应该也是20个bytes阿... 有前辈可以指点我哪里概念有错误吗? 或是能够提供方向让我找资料 谢谢 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 136.60.160.77
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1522727559.A.A71.html
1F:→ bluesoul: 因为virtual function default parameter是看你怎样呼叫 04/03 12:00
2F:→ bluesoul: https://goo.gl/XtGJjV 04/03 12:01
3F:→ Caesar08: 第二个可以google intel data alignment and structure 04/03 12:03
4F:→ bluesoul: 第二点是我们不知道实际上会怎样被放 04/03 12:03
5F:→ Caesar08: 对,但是不知道为甚麽,面试都很爱考这个 04/03 12:11
6F:→ stupid0319: 录取了吗? 04/03 14:06
7F:推 dzwei: 第一题effective c++有 04/03 15:34
8F:→ dzwei: 我记得是给初始值之後的virtual func 04/03 15:34
9F:→ dzwei: 就会变成静态绑定了 04/03 15:34
10F:→ dzwei: 所以实作上用virtual func 04/03 15:39
11F:→ dzwei: 根本不可以给parmeter的预设值 04/03 15:39
12F:推 super6602: 第二题还是看complier 看cpu怎麽fetch最快 04/03 20:42
13F:推 kyushu: 搞不懂考这种特例的用意是什麽? 04/03 21:12
14F:推 ilikekotomi: 第一题 刚刚回去翻Effective C++ 在37条 04/03 22:55
16F:→ plsmaop: ent 04/04 10:37
17F:→ plsmaop: 维基说整个大小会是最大的type的倍数 04/04 10:37
18F:→ plsmaop: 所以这个例子是double的8byte乘上3,变成24 04/04 10:38
19F:推 s0914714: alignment跟compiler有关 不同compiler有可能不同大小 04/04 13:15
20F:推 s0914714: 原PO回答也没错阿 以4byte当alignment就是这种情形 04/04 13:45
21F:推 s0914714: alignment主要是考量到效率以及有些架构如果没有对齐 04/04 13:50
22F:→ s0914714: 会有fault 所以可能的情形会很多XD 04/04 13:50
23F:推 brighton16: 考试喜欢考没多大用处的特例,可以显示出题人的优越感 04/04 22:13
24F:推 Philethan: 推推 07/08 15:42







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP