这是一篇关于讲解shared_ptr使用过程中常见的问题及对应方法的文章 什么是shared_ptr 自行百度。 常见问题 1.多次引用同一数据 { int* p = new int[10]; std::shared_ptr<int> sp1(p); std::shared_ptr<int> sp2(p); } 它会导致两次释放同一块内存,而破坏堆。 2.使用shar
左值是指在内存中有确定位置并且可以被取地址的表达式,它通常指代一个具有持久性(Permanent)和唯一性(Identity)的对象 右值是指表示值的表达式,它通常是一个临时的、没有持久性和唯一性的对象或字面值常量 右值分为:纯右值(字面常量)和将亡值(更侧重于自定义类型的函数的返回值,表达式的返回值)。 当构造传左值,就走拷贝构造,当构造传右值,就走移动构造。 对于左值,我们后续还要使用,所以只
C++ 中的工厂模式和抽象工厂模式都是为了实现对象的创建和实例化,但它们在设计和使用方式上有一些区别。 工厂模式(Factory Pattern): 工厂模式通过一个工厂类来封装对象的创建逻辑,并将具体对象的创建细节隐藏起来。客户端只需通过工厂类调用相应的方法来获取所需的对象实例。 工厂模式适用于需要创建一组相关对象的场景,工厂类可以根据条件返回不同的具体对象。 工厂模式强调的是创建过程的封装,使
1.关于结构体中定义函数 在C++中,结构体中定义函数没问题 在C中, 则不行。会报expected specifier-qualifier-list before... 2.在C++中,结构体与类的区别: 在C++中,结构体是一种特殊形态的类。 结构体和类的唯一区别就是: 结构体和类具有不同的默认访问控制属性。 3.C与C++中结构体的区别: 一、相同之处:结构体中可以包含函数;也可以定义p
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号