在初始化中赋值, 和用赋值函数给成员变量在初始化后再赋值有什么不同吗?
结果可能没有什么不一样的,但是效率却不同。
例如:
Template<class T>{
public:
NamedPtr(const string& initName, T* initPtr);
private:
const string& name;
T × const ptr;
}
Way1:
NamedPtr(const string& initName, T* initPtr) : name(initName), ptr(initPtr)
{}
Way2:
NamedPtr(const string& initName, T* initPtr)
{
name = initName;
ptr = initPtr;
}
Way1 中的实现方法,会调用string的初始化函数直接赋初值
Way2中的实现方法,首先调用string的初始化函数,给个default的值,然后在调用赋值函数把initName的值赋给name