我有一個函數計算的東西,如果結果是無效的,我想返回像「NULL」的東西。 我已經找到了使用指針的方法,但有沒有更簡單的方法來做到這一點?C++可以通過一個int函數返回類似「NULL」的東西嗎?
1
A
回答
4
它真的取決於你的函數的語義。如果函數的合約是它將返回一個int
給用戶,並由於某種原因無法這樣做,那麼你的函數應該拋出一個異常。如果該功能的合同是要麼向用戶返回int
或者什麼都不返回,那麼您可能需要使用boost::optional
。
1
使用Event-Driven Programming通過:枚舉或#defines
設置返回代碼:
(警告:這是一個非常簡單的例子)
#define GOOD_INPUT 10001
#define BAD_INPUT 10002
int test_function() {
std::string str;
std::cout << "Enter a string:" << std::endl;
std::cin >> str;
if (!str.empty()) {
return GOOD_INPUT;
}
else {
return BAD_INPUT;
}
}
以後你可以檢查,看看是否一切順利:
int rtn_code = test_function();
if (rtn_code == BAD_INPUT) {
//something went wrong: say or do something.
}
3
NULL是void *的類型,所以它不能只傳遞給int,但你也可以只是做一些事情:
#define NOT_FOUND -1
或只是一些你不使用的數字。
此外,作爲@juanchopanza指出,你可以拋出一個異常
相關問題
- 1. 可以_sync_val_compare_and_swap返回int以外的任何東西嗎?
- 2. Objective-C有類似C++虛函數的東西嗎?
- 3. 通過replicate()運行多次的函數返回多個東西()
- 4. STUFF函數可以返回NULL值嗎?
- 5. 我可以通過C++中的值返回一個數組嗎?
- 6. 可以做一些類似「rspec --color --format doc」的東西嗎?
- 7. 我可以用Java寫一些類似Notification的東西嗎?
- 8. 函數可以返回一個指向NULL的指針嗎?
- 9. 這可以通過JOIN之類的東西來完成嗎?
- 10. 我可以通過返回構造函數直接返回一個對象嗎?
- 11. 是否可以多處理一個返回Python中的東西的函數?
- 12. C++返回的指針指向除函數返回的東西以外的東西
- 13. 我可以在VBA中使用DPAPI(或類似的東西)嗎?
- 14. 我可以從Angular $ compile或類似的東西獲取HTML嗎?
- 15. saltstack可以做類似織物的東西嗎?
- 16. 使用AS3可以創建類似shapecollage.com的東西嗎?
- 17. 我可以把一個對象列表或類似的東西嗎? AS3
- 18. 我可以強制抽象類的方法返回一些東西嗎?
- 19. 類似的東西?
- 20. 我可以迴應一個SQL查詢之間的東西嗎?
- 21. ExecuteScalar可以返回null嗎?
- 22. ServiceLocator.Current.GetInstance可以返回null嗎?
- 23. getBestProvider可以返回null嗎?
- 24. java有一些類似於C#屬性的東西嗎?
- 25. AWK咖喱函數 - 函數可以返回一個函數嗎?
- 26. 返回一個int的引用與返回一個int在c + +函數?
- 27. 函數似乎不返回任何東西,當它應該
- 28. Ruby有類似JavaDoc的東西嗎?
- 29. Javascript有類似%d的東西嗎?
- 30. C++ - 爲什麼我可以返回一個int類的月
沒有沒有,但你可以拋出一個異常。 – juanchopanza
我不想停止程序,我只是想檢查這種可能性,並做一些事情。 – maria
@maria異常不會停止程序;只要他們沒有被捕獲。通常你總是有一個全局異常處理程序;所以如果一個異常未被捕獲,程序終止受控制 – Paranaix