找回密码
 立即注册
首页 业界区 业界 C++ 内存避坑指南:如何用移动语义和智能指针解决“深拷 ...

C++ 内存避坑指南:如何用移动语义和智能指针解决“深拷贝”与“内存泄漏”

抽厉 2026-2-8 23:20:00
1. 函数传参

在 Java 中,当我们把一个「对象」传给函数时,其实不需要思考太多:传过去的是引用的拷贝,函数里修改的对象的内容也会反应到外面。
但在 C++ 中情况可能不太一样,一般来说我们有三个选择:
1.1. 值传递 (Pass-by-Value):默认的「深拷贝」

这是 C++ 和 Java 最大的直觉冲突点。在 C++ 中,如果没有任何修饰符,编译器会把整个对象完整地克隆一份。 我们看下面的例子:
[code]#include #include // 这里会触发 std::vector 的拷贝构造函数void modify(std::vector v) {     v.push_back(999);    std::cout

相关推荐

您需要登录后才可以回帖 登录 | 立即注册