gpt4 book ai didi

C++ std::unique_ptr 从函数返回并测试 null

转载 作者:IT老高 更新时间:2023-10-28 21:45:25 29 4
gpt4 key购买 nike

我有一个函数需要返回一个指向 myClass 类对象的指针。为此,我使用 std::unique_ptr

如果函数成功,它应该返回一个指向带有数据的对象的指针。如果失败,它应该返回 null

这是我的代码框架:

std::unique_ptr<myClass> getData()
{
if (dataExists)
... create a new myClass object, populate and return it ...

// No data found
return std::unique_ptr<myClass> (null); // <--- Possible?
}

main上:

main()
{
std::unique_ptr<myClass> returnedData;

returnedData = getData();

if (returnedData != null) // <-- How to test for null?
{
cout << "No data returned." << endl;
return 0;
}

// Process data
}

所以我的问题来了:

a) 是否可以使用 std::unique_ptr 来完成(返回对象或 null)?

b) 如果可能,如何实现?

c) 如果不可能,有什么替代方案?

感谢您的帮助。

最佳答案

以下任何一个都应该有效:

return std::unique_ptr<myClass>{};
return std::unique_ptr<myClass>(nullptr);

要测试返回的对象是否指向有效对象,只需使用:

if ( returnedData )
{
// ...
}

http://en.cppreference.com/w/cpp/memory/unique_ptr/operator_bool .

关于C++ std::unique_ptr 从函数返回并测试 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30293338/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com