Jam*_*lis 18
如果您要存储引用并且需要在构造函数完成后使用它,那么构造函数最好采用指针:
struct C {
C(const X* p) : p_(p) { }
const X* p_;
};
Run Code Online (Sandbox Code Playgroud)
这样,它几乎可以保证你不会有一个指向临时的指针(除非X做一些非常愚蠢的事情,比如重载一元文件&以便返回this).
如果构造函数接受指针,那么对于类的用户来说,他们需要注意X它们传递给构造函数的对象的生命周期也更清楚.