在C++中,"reset"函数用于智能指针和一些类的成员函数,作用是重新设置对象的状态,释放原有资源并可能分配新的资源。下面分别是从智能指针和一般的类成员函数两个方面解释:
在 C++ 中,std::shared_ptr 和 std::unique_ptr 等智能指针提供了 reset 成员函数,用于重新设置指针的状态。以下是 std::shared_ptr 和 std::unique_ptr 中的 reset 函数的用法:
- void test_reset(){
- std::shared_ptr<int> ptr(new int(100));
- std::cout<<"Orginal nmber is: "<<*(ptr.get())<
- ptr.reset(new int(200));
- std::cout<<"Now nmber is: "<<*(ptr.get())<
- }
- // 输出
- // Orginal nmber is: 100
- // Now nmber is: 200
主要作用就是管理动态分配的资源,避免内存泄漏。
一般类成员函数的 reset:
有些类也提供了名为 reset 的成员函数,通常用于重置类的内部状态或释放资源。这个 reset 的具体实现和作用取决于类的设计。
- class MyClass {
- public:
- MyClass(int value) : data(value) {}
-
- void reset(int value) {
- data = value;
- }
-
- void print() {
- std::cout << "Data: " << data << std::endl;
- }
-
- private:
- int data;
- };
-
- void test_class_reset(){
- MyClass obj(42);
- obj.print();
- obj.reset(100);
- obj.print();
- }
- // 输出
- // Data: 42
- // Data: 100
主要作用是重置对象的内部状态,有利于不创建新对象的情况下改变对象的状态。
此外,reset函数还有一个重要的作用:释放资源
reset() 函数的默认行为是将 shared_ptr 持有的对象释放,并将 shared_ptr 重置为空指针。如果 reset() 不带参数,它将释放当前 shared_ptr 持有的对象,并将其重置为 nullptr。
-
相关阅读:
NoClassDefFoundError产生原因,及解决办法
AS01/KO02/KO88 新建创建资产卡片函数/内部订单结算维护/内部订单转固接口
4.6、在线调试工具 ILA 的使用
Android签名查看
【重识云原生】第六章容器基础6.4.9.3节——Service拓扑感知
记录一次久远git仓库迁移
万向区块链肖风:产业元宇宙的“液化现象”
Go语言学习笔记—xorm
计算机毕业设计(附源码)python在线付费课程学习平台
Module,NXH50M65L4C2ESG、NXV08V110DB1、FSBB10CH120DF 三相反相器、IGBT 模块
-
原文地址:https://blog.csdn.net/pan_1214_/article/details/134511530