Re: [問題] pointer能出的題目
看板C_and_CPP作者bachelorwhc (單身老王)時間10年前發表 (2015/04/11 19:12), 10年前編輯推噓0(0推 0噓 2→)留言2則, 1人參與討論串2/2 (看更多)
上學期 教C時 出題給學生 由於測驗是用 OnlineJudge
所以實在很難設計題目
後來我們想了一個題目
Input會要求學生在特定記憶體位置 賦值不同型別的資料
最後再把記憶體 以單Byte單位 逐個以int型別輸出資料
(結果一堆學生直接用Scanf來做……
那時候算是礙於課程進度 還沒教Struct
所以我沒辦法指定自定型別來玩學生就是了
Function Pointer的難度 對某些學校的畢業生來說 已經算高了
如果考的是C++的話
可以考Memory Allocation的機制
例如Stack或Pool 可以提供Header File讓學生完成剩下的代碼
或者是考方提供Memory Allocator後 讓考生用placement-new初始化物件
由於C++的繼承機制 如果是子類別(Derived Class)
沒辦法直接用以下做法完成初始化
A* ptr {(A*)new char[sizeof(A)]};
*ptr = A();
這種做法 會導致 virtual function 無法被正常呼叫
(virtual table根本沒有被初始化)
不過嚴格來說 這種題目 不是在考Pointer
而是在考C++常識 強迫學生去使用Placement new
shared_ptr跟unique_ptr我覺得也可以考考看
※ 引述《trytryit (EDISON)》之銘言:
: 要出一個使用指標的題目
: 我自己原本出的太簡單了
: 只是指標函式,被退
: 想請問有沒有不錯的出題方向可以分享
: 需要一些題目情境,希望能給我點建議
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.34.241.165
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1428779540.A.DFD.html
※ 編輯: bachelorwhc (114.34.241.165), 04/12/2015 03:28:01
→
04/12 08:07, , 1F
04/12 08:07, 1F
→
04/12 08:08, , 2F
04/12 08:08, 2F
討論串 (同標題文章)