C++之使用对象前先初始化
1.内置类型
当需要使用一个int类型的变量时,我们应该先对其进行初始化,例如:
int x=0;
//..... 在后续中使用x变量
2.一个类里面的成员变量初始化
初始化类里面的成员变量时,尽量使用初始化列表对其进行初始化,例如:
class Forest
{
public:
Forest(const std::string str,int num);
private:
string m_forestName;
int m_treeNum;
}
1)当用以下方式实现构造函数时,:
Forest(const std::string str,int num)
{
m_forestName=str; //这属于赋值操作,而非初始化操作,初始化在进入到构造函数体之前已经被初始化
m_treeNum=num;
}
2)因此可以尽量使用初始化列表进行初始化,实现如下:
Forest(const std::string str,int num)
:m_forestName(str), //这种属于初始化
m_treeNum(num)
{
}
第二种相对于第一种来说要高效一些,原因如下:
第一种首先调用default构造函数为m_forestName设初值,然后立刻再赋予新值;第二种在初始化列表中针对各个成员变量而设的实参,被拿去直接作为各成员变量的实参