C++新特性
文章平均质量分 93
Khaoden
知行合一
展开
-
C++智能指针(2)/C++新特性
make函数比起直接调用new操作符,减少了源代码的重复,保证了异常安全,并且std::make_shared和std::allocate_shared还能生成更小更快的代码不能使用make函数的情形:要自定义deleter;希望使用大括号{}来初始化对象自身重载了new和delete操作符的类系统有内存隐患,分配的对象特别大,并且有指向此对象的std::weak_ptr实例存活时间远远长于对象的最后一个std::shared_ptr笔者水平有限,有问题可以和我交流。原创 2024-09-15 15:30:59 · 1140 阅读 · 0 评论 -
C++智能指针/C++新特性
多个裸指针指向同一块内存地址,即使被delete了,也有可能导致改内存空间不再被使用,从而引发内存泄漏。可以使用共享指针,当该地址的引用计数缩减为0的时候,就会重载该块地址见unique_ptr的deleterreturn;fclose(fp);可以不delete内存,而关闭文件。f为共享指针的别名,可以通过这样的操作使得b指针可以访问f指针的属性,注意b和f都必须是共享指针可以使用lamda表达式、普通函数、任意函数。原创 2024-09-14 22:04:32 · 1440 阅读 · 0 评论