传递智能指针作为引用参数:可以将智能指针作为引用参数传递给函数,这样可以避免不必要地拷贝智能指针对象。例如: void func(std::shared_ptr<int>& ptr) { // do something with ptr } 复制代码 返回智能指针对象:函数可以返回智能指针对象,从而避免了在函数外部手动管理内存的工作。例如: std::shared_ptr<int>...
可以通过智能指针的get()方法获取原始指针,或者通过解引用操作符(星号)获取对象的引用。例如:
在Chromium里最常用的两种智能指针类型是std::unique_ptr<>和scoped_refptr<>。前者适用于单一所有权的对象,后者适用于引用计数的对象(然而,通常应该避免使用引用计数的对象)。如果你比较熟悉C++11,会发现scoepd_refptr<>和std::shared_ptr<>...
C++中的引用传递与指针传递 在C++中,引用传递和指针传递是两种常见的参数传递方式,它们在功能和使用上有显著的区别。 1. C++中的引用传递概念 引用传递是指将变量的别名传递给函数。这意味着在函数内部,通过引用参数可以直接修改原变量的值。引用在定义时必须被初始化,且一旦被初始化后,就不能再改变引用的对象。
WeakPtr<>实际上不是智能指针。它的表现像指针类型,但是并不能用来自动释放对象,通常用作追踪其它地方拥有的对象是否依然存活,当追踪对象释放时,WeakPtr<>会自动的置为null。(但是依然需要在解引用前判断是否为null,因为解引用null WeakPtr<>等于于解引用null,而不是no-op。)WeakPtr<>与C++11的std::weak_ptr<...