我目前在學習C++,並通過實現一個簡單的AddressBook應用程序來練習我的知識。
我從一個Entry
類和一個AddressBook
類開始,它實現了一個STL Map來按照人的姓氏訪問條目。
現在我來到了下面的代碼:C++關於類設計異常處理的幫助
Entry AddressBook::get_by_last_name(string last_name){
if(this->addr_map.count(last_name) != 0){
//What can I do here?
} else {
return addr_map[last_name];
}
腳本語言,我只想返回類似-1, Error Message
(Python中的列表),以表明函數失敗。我不想拋出異常,因爲它是應用程序邏輯的一部分。呼叫類應該能夠通過在控制檯上打印或打開消息框來響應請求。
現在我想通過向類Entry
引入某種無效狀態來實現在C++中實現腳本語言方法。但是在C++中不是那麼糟糕的做法嗎?難道我的整個班級設計都不合適?我感謝任何幫助。請記住,我仍然在學習C++。
將提升::可選更改我返回的類型的大小?我的意思是它必須在任何地方保存額外的信息? – 2013-02-18 12:12:17
如果使用的是相當近的編譯器,則使用'nullptr'而不是'NULL'。這是一個c + + 11關鍵字,正是一個指針是0 http://stackoverflow.com/questions/1282295/what-exactly-is-nullptr – 2013-02-18 12:33:37