1.构造函数(无参构造,主要用于初始化成员):
class CGouzao1
{
public:
CGouzao1()
{
m_nNum=0;
}
private:
int m_nNum;
};
2.构造函数(有参构造,函数体内初始化)
class CGouzao2
{
public:
CGouzao2(int x)
{
m_nNum=x;
}
private:
int m_nNum;
}
3.构造函数(有参构造,初始化列表。函数体外初始化)
class CGouzao3
{
public:
CGouzao3(int x,int y): m_nNumX(x),m_nNumY(y)
{ }
private:
int m_nNumX;
int m_nNumY;
}
注意:1.根据成员变量的顺序初始化。
2.可以初始化const类型、引用类型、类类型,而函数体内初始化不行。
4.构造函数(转换构造,跟构造2一样,主要用于
基本类型转换类类型
)
class CGouzao4
{
public:
CGouzao4(int x)
//如果前面加上explicit就会阻止转换构造
{
m_nNum=x;
}
private:
int m_nNum;
}
int main()
{
CGouzao4 objA(12);
CGouzao4 objB=34;
return 0;
}
5.构造函数(拷贝构造,用于类类型转换类类型)
class CGouzao5
{
public:
CGouzao5(int x)
{
m_nNum=x;
}
CGouzao5(Gouzao &obj) //拷贝构造
{
m_nNum=obj.m_nNum;
}
private:
int m_nNum;
}
int main()
{
CGouzao5 objA(3);
CGouzao5 objB(objA);
return 0;
}