# OOP 5/9 5/11 ## 5/9 ## 第一題  答案為綠色 黃色意思是他如果可以雙向的話被稱為doubly linked list ## 第二題  答案為綠色 黃色意思是C++標準函式庫已經幫你定義好一些資料結構, 可以直接用 ## 第三題  答案為紅色 紅色linked list不會開連續記憶體空間 藍色c++要動態配置記憶體可以用 new and delete ## 第四題   答案為藍色 把head指向新的data,本來被指向的linked list就會memory leak 黃色afterMe作用是創一個新的node,然後linked list指向他 ## 第五題  答案為綠色 藍色linked list確實需要掃過每一個元素 ## 第六題  答案為黃色 要存的資訊多,memory比較大 ## 第七題  答案為藍色 FILO ## 第一題  答案為綠色 因為getStackNum()有加static,所以就算還沒宣告該物件一樣可以存取 紅色因為有template,所以可接多種形態 藍色是因為在創建及刪除該種類物件時,需更動stackNum的值 ## 第二題  答案為藍色 藍色,不保護=的回傳值並不會造成錯誤,compile還是會過 黃色只是宣告 static變數 不會錯 ## 第三題  答案為藍色 它只是一般的queue ## 第四題  答案為黃色 不是random ## 第五題  答案為黃色 實作是用紅黑樹 紅色是因為set會去除重複元素 ## 第六題  答案為黃色 用pointer需要知道 data strusture的底層,not elegant ## 第七題   答案為藍色 都寫在main的for迴圈裡面了,不好改變成別的data structure ## 第一題   答案為紅色 這是for linked list的,其他不能用 enumeration:窮舉 ## 第二題  答案為綠色 黃色有點不知道甚麼意思 ## 第三題  答案為黃色 Obviously  基本上有這些common iterator ## 第四題  答案為綠色 push_back會更動到container的值,感覺不是iterator的工作範疇 黃色iterator可以隨機存取[] ## 第五題  答案為綠色 iterator如果沒定義++ --就不支援 ## 第六題  答案為紅色 他沒說是binary tree ## 第七題  答案為黃色 all data public一定不會好 ## 5/11 ## 第一題  選黃色 解題思路: 使用者應該先專注在核心工作上,錯誤處理留給之後再做,故黃色錯了 ## 第二題  選藍色 解題思路: 根本沒有rethrow這個用法,故藍色錯了  ## 第三題  選綠色 解題思路: 都對 ## 第四題  選綠色 解題思路: exception handleing不要隨便亂用,故紅色錯 在情況簡單的情況下,直接用if-else就好了,不須用到exception handleing,故藍色錯 exception handleing的其中一個核心概念便是用在不同函式中,故黃色錯了  ## 第五題  選綠色 解題思路: 都對  ## 第六題  選黃色 解題絲路: exception handleing的概念是將主線城市與錯誤處理分開 ## 第六題  選黃色 解題絲路: exception handleing的概念是將主線城市與錯誤處理分開 ## 第七題  選藍色 解題思路: there is a trap,只寫throw在compile時會過,但真的跑到這邊而且出錯時,會因為找不到exception而run error ## 第一題  選黃色 解題思路: 只會進到其中一個catch block處理錯誤情況,故黃色錯 ## 第二題  選藍色 解題思路: 發生錯誤情況時,不會再回到原本throw的地方 ## 第三題  選紅色 解題思路: catch block最多只能傳一個參數 ## 第四題  選藍色 解題思路: exception class甚至可以沒有宣告任何函式與變數,只要做為不同型態即可 ## 第五題  選紅色 解題思路: 在一個try block中,可以寫超過一個throw exception_parameter(應該是指"throw")  ## 第六題  選黃色 解題思路: Default應該要放在最後面才對,如同switch一樣 ## 第七題  選黃色 解題思路: 應該是"get to the catch block"才對 ## 第一題  選綠色 解題思路: handle exceptions的應該是catch block ## 第二題  選黃色 解題思路: 列在throw list的是"可能會出現的錯誤情況",多寫沒關係  ## 第三題  選紅色 解題思路:  ## 第四題  選綠色 解題思路: throw list 語法只在C++ 14前有效(含) ## 第五題  選黃色 解題思路: since C++17才對 ## 第六題  選紅色 解題思路: main() 呼叫f1(),f1呼叫f(),f() throw DBZ型態,被catch並輸出1; main() 呼叫f2(),f2(),f() throw DBZ型態,被catch並輸出5(因為AE繼承DBZ,故也屬於DBZ型態); ## 第七題  選藍色 throw-catch支援巢狀
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up