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/m.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燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP