一,构造函数介绍
1.构造函数:
1.是一种特殊的成员函数,与其他成员函数不同,不需要用户调用它。
2.在建立对象时,系统会自动调用。同时:系统根据类的属性大小为该对象分配储存单元。
注意:
1.构造函数与类名同名。
2.不具有返回值。
3.没有返回值。
2.构造函数分为有参构造函数和无参构造函数
2.1无参构造:
/*class 类名(){}*/
class Time
{
Time(){} //无参构造
}
用户没有定义构造函数(有参构造或无参构造)时,C++系统会自动生成一个构造函数,该构造函数的函数体是空的,也没有参数。
2.2有参构造:
/*class 类名(){}*/
class Time
{
public:
int m_hour ;
int m_mintue ;
int m_sec ;
Time(){} //无参构造
Time(int hour,int mintue,int sec){}//有参构造
}
class 类名(类型1 形参1,类型2 形参 2,…){}
如果用户建立了有参构造函数,如果没有建立无参构造函数,系统不会自动生成无参构造,需要用户自动定义。
二,构造函数作用
1.对对象的初始化。
2.一个类对象初始化类一个类对象
Time t1 ; //建立对象t1,同时调用构造函数t1.Time()
Tim1 t2 = t1; //建立对象t2,并用t1初始化t2
1. 对象初始化:
由于 类 不是个实体,而是一个抽象类型。不占用空间,因此无法存容数据。
错误代码:
class Time
{
int hour = 0;
int mintue = 0;
int sec = 0;
};
正确代码:
class Time
{
int hour ;
int mintue ;
int sec ;
};
Time t1 = {14,56,30};
2,用无参构造函数初始化
class Time
{
public:
int hour ;
int mintue ;
int sec ;
Time()
{
hour = 0;
mintue = 0;
sec = 0;
}
};
3,用带参构造函数初始化
class Time
{
public:
int m_hour ;
int m_mintue ;
int m_sec ;
Time(int hour ,int mintue , int sec)
{
m_hour = hour;
m_mintue = mintue ;
m_sec = sec;
}
};
4,使用默认参数的构造函数
写法一:
class Time
{
public:
int m_hour ;
int m_mintue ;
int m_sec ;
Time(int hour = 10 ,int mintue = 20 , int sec = 1)
{
m_hour = hour;
m_mintue = mintue ;
m_sec = sec;
}
};
写法二:
class Time
{
public:
int m_hour ;
int m_mintue ;
int m_sec ;
Time(int hour,int mintue, int sec):hour(h),mintue(m),sec(s)
{
}
};
构造函数是C++中用于对象初始化的特殊函数,分为无参和有参两种。当创建对象时,系统会自动调用构造函数。无参构造函数通常用于设定默认值,而有参构造函数允许指定初始值。构造函数可以用来初始化类的对象,并且可以使用默认参数来提供更多的灵活性。

1978

被折叠的 条评论
为什么被折叠?



