【c++随笔】std::optional<std::uniqure_ptr<Study>> const mStu;

std::optional<std::uniqure_ptr> const mStu;

声明了一个常量成员变量 mStu,其类型为 std::optional 包裹着 std::unique_ptr
以下逐一解释这一声明的各个部分:

std::unique_ptr

std::unique_ptr 是一个智能指针,用于表示对动态分配对象的独占所有权。这意味着在同一时间内只能有一个 std::unique_ptr 指向一个特定的对象。当 std::unique_ptr 被销毁(例如,超出其作用域时)时,它所指向的对象也会被自动删除。这种特性有助于防止内存泄漏。
是模板参数,表示 std::unique_ptr 所指向的对象类型是 Study。

std::optional

std::optional 是一个可以包含或不包含值的包装器。它允许表示一个值可能存在,也可能不存在,这在某些情况下比使用空指针或特殊值来表示“无值”更安全和清晰。
在这个例子中,std::optional<std::unique_ptr> 表示 mStu 可以包含一个指向 Study 对象的 std::unique_ptr,或者它可能不包含任何值(即,它是空的)。

const

const 关键字表示 mStu 是一个常量,即其值(无论是 std::optional 所包含的值还是它不包含任何值的状态)在初始化后不能再被修改。
这意味着你不能改变 mStu 是否包含 std::unique_ptr,也不能改变它所包含的 std::unique_ptr 所指向的对象(如果它包含的话)。

总结

综上所述,std::optional<std::unique_ptr> const mStu; 声明了一个常量成员变量,它可能包含一个指向 Study 类型的对象的 std::unique_ptr,也可能不包含任何值。一旦 mStu 被初始化,你就不能再改变它的状态了。

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值