std::unique_ptr<int> p5(new int); *p5 = 10;是用了赋值运算符重载吗

在表达式 *p5 = 10; 中,并没有直接涉及到 std::unique_ptr 类模板的赋值运算符重载。这里实际上是发生了两个步骤:

  1. 解引用操作*p5 使用的是 std::unique_ptr 的解引用运算符重载(operator*)。这个运算符允许我们访问 unique_ptr 所拥有的对象。在这个例子中,*p5 给我们提供了对其所拥有的动态分配的 int 对象的引用。

  2. 赋值操作= 10 部分是对解引用得到的 int 对象进行赋值。这里使用的是 int 类型的赋值运算符,而不是 std::unique_ptr 的赋值运算符。这个操作将解引用得到的 int 的值设置为 10。

因此,虽然整个表达式涉及到了 std::unique_ptr,但赋值运算符的使用是针对 unique_ptr 所管理的 int 对象,而不是 unique_ptr 自身。std::unique_ptr 提供的是解引用的能力,而赋值操作实际上是作用于 int 类型的对象上。

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值