我有一个函数计算的东西,如果结果是无效的,我想返回像“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