gpt4 book ai didi

C++:实现智能指针

转载 作者:行者123 更新时间:2023-11-28 03:33:23 26 4
gpt4 key购买 nike

我正在阅读实现智能指针,我发现了以下代码,

template <class T>
class SmartPtr
{
public:
explicit SmartPtr(T* pointee) : pointee_(pointee);
SmartPtr& operator=(const SmartPtr& other);
~SmartPtr();
T& operator*() const
{
...
return *pointee_;
}
T* operator->() const
{
...
return pointee_;
}
private:
T* pointee_;
...
};

我无法理解以下内容,

  1. “SmartPtr& operator=(const SmartPtr& other)”:为什么参数是常量?分配完成后它不会失去所有权吗?
  2. 为什么我们需要“T& operator*() const”和“T* operator->() const”方法?

谢谢@

最佳答案

要点1.不一定,要看智能指针的设计。像 boost:shared_ptr 这样的东西不会在分配时转移所有权。

Point 2. 这些方法模拟了智能指针上的正常指针操作。

关于C++:实现智能指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11909626/

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