gpt4 book ai didi

c++ - 函数参数作为引用以避免检查 NULL

转载 作者:太空狗 更新时间:2023-10-29 19:44:36 24 4
gpt4 key购买 nike

如果我有一个函数接受一个永远不应该为 NULL 的指针,我通常会这样做:

void Foo(const somePointer* ptr)
{
if (ptr == NULL)
{
// Throw assertion
return;
}

// Do something
}

所以现在我每次都检查指针是否为 NULL,如果它一开始就没有设置为 NULL 并且也没有分配,那么该检查就没有用了。所以现在我在考虑是否应该这样定义我的函数(虽然我意识到这并不能保证我得到一个有效的对象,至少它不会是 NULL):

void Foo(const somePointer& ptr)
{
// No need to check anymore, client is responsible

// Do something
}

在我这样做之前(或不这样做,取决于我在这里得到的答案),我想我会在这里问一下,看看每个人都怎么说,尤其是它的优缺点。

最佳答案

好吧,如果您永远不想传入不存在的对象,请使用引用(注意:不存在,不是无效)。
如果您想要这种可能性,请使用指针。

关于c++ - 函数参数作为引用以避免检查 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6169251/

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