摘要: C++中深拷贝与浅拷贝常见场景为类的 拷贝构造函数 与 赋值运算符重载 中。 其主要的区别在于指针成员的拷贝上,如果指针成员变量指向的内容位于动态申请的堆内存上,此时浅拷贝只是拷贝了指针变量,会造成多个指针指向同一块内存,当这些对象被析构时,就会造成多次释放同一块内存的问题,即 double fre 阅读全文
posted @ 2024-08-09 11:02 Jeffxue 阅读(92) 评论(0) 推荐(0)
摘要: C++中如果没有显式定义类的构造函数和赋值运算符,编译器会自动生成对应的函数,但是对于一些含有指针成员变量的类,自动生成的成员函数只会进行浅拷贝,会导致动态申请的内存在对象析构的时候double free,引起崩溃的问题。 因此如果没有必要,通常会禁用该接口,避免用户调用该接口造成问题。 禁用的方式 阅读全文
posted @ 2024-08-09 09:20 Jeffxue 阅读(308) 评论(0) 推荐(0)