C++ const& 的坑

idea at 
C++ const& 的坑的配图
我们一般很喜欢把函数的参数定义为 const&, 这样即能传引用减少内存拷贝, 也能限定参数为 const 类型不可修改, 似乎很美好. 但是, 如果把对象的属性传给函数, 而对象又被删除时, 就会出错. struct C { std::string id; }; class S { C *c = NULL; void f1(){ c = new C(); c->id = "a"; f2(c->id); } void f2(const std::string &id){ delete ……