gpt4 book ai didi

c++ - 将智能指针传递给引用指针参数的函数

转载 作者:太空狗 更新时间:2023-10-29 19:46:05 28 4
gpt4 key购买 nike

如何将智能指针传递给以指针作为参数的函数?

smart_ptr<T> val; // I have this smart pointer

// And I want to pass it to this function, so that this function will fill the smart pointer with proper value
void Foo(T*& sth)
{
sth = memoryAddress;
}

编辑现在我懂了。谢谢大家的回答!

最佳答案

简单的回答是你不能。而智能指针几乎肯定在内部某处包含一个 T*,聪明指针强制执行各种不变量,其中许多可能是如果您可以在不通过的情况下更改此指针,则损坏用户界面。唯一的解决办法是调用函数用裸指针,然后用裸指针初始化智能指针,前提是您确定指针你得到满足智能指针的要求(例如由 new 运算符分配)。

关于c++ - 将智能指针传递给引用指针参数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17812677/

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