返回对象或 NULL 值的方法
Method returning an object or a NULL value
我有一个返回对象(表示数据库中记录的对象(的函数,但如果数据库中不存在请求的数据,它应该返回一个 NULL 值。根据这个答案,不可能设置对象NULL,但是可以返回指向对象的指针,并且指针可以是NULL。所以我在我的方法上做到了,但是 - 由于指针是本地对象 - 应用程序无法按预期工作(实际上,它确实适用于 Windows,但不适用于 Linux(。调查该问题后,我发现返回指向局部变量的指针不是一个好主意。处理我的案件的最佳解决方案是什么?在这种情况下,使用智能指针似乎过于复杂。
您可以使用std::optional
(或boost::optional
(来表示可能存在或不存在的值,而无需任何动态分配。
std::optional<int> read_from_database(const std::string& id)
{
return db.has(id) ? std::optional<int>{} : db.get(id);
}
相关文章:
- 是否有通用方法可以找到任何以 null 结尾的字符串的长度?
- C++ - 创建具有相同字符的特定大小的以 null 结尾的 c 样式字符串的更好方法
- 如何引用 obj1 并在 NULL 时调用 show 方法
- 是否有一种安全的方法可以断言字符串视图是否以 null 终止?
- ConvertToReferencePoint 方法不起作用,获取作业参数的 NULL (HyperV 2016)
- 返回对象或 NULL 值的方法
- 在单一实例类中将成员指针设置为 null 的正确方法是什么
- 从指针访问值或获取其默认值(如果为 null)的最干净方法
- LinkedListInit, LinkedListCreateH 方法中的"L->next=NULL"有什么问题吗?
- 指针类成员在通过类方法初始化后保持 NULL
- 测试指针是否为null的最有效方法是什么?
- 调用类的方法时,类的指针"this"变为 null C++
- 在此初始值设定项方法上将整个数组设置为 NULL 是否C++标准?
- 如果指向成员函数的指针为NULL,则方法的部分专用化
- 为什么当我将非 NULL 指针传递给方法时,它们似乎会转换为 NULL?(C++)
- 为什么我不能从 const String& 方法返回 NULL?
- 调用不访问 null 对象指针上数据的方法有时有效,有时崩溃。为什么它不总是崩溃?
- 打印出设置为 NULL 的字符*的可能方法?
- Bitmap::FromFile方法在x86上返回NULL
- gdb 错误:找不到方法 (null)什么