构造函数的概念:
(1)构造函数是特殊的成员函数。
(2)当创建类类型的新对象时,系统自动调用构造函数。
(3)构造函数的作用在对象被创建时使用特点的值构造对象,将对象初始化为一个特定的初始状态,保证对象的每个数据成员都能够被正确的初始化。
构造函数的要求:
- 函数名=类名,不能定义返回值类型,也不能有return语句。
- 如果没有定义构造函数,编译器将在需要时自动生成一个默认构造函数,默认构造函数参数列表为空,且初始值可能不定, 此时不会对对象数据初始化,对象数据成员的值是随机的。
- 如果我们提供了一个构造函数,系统就不在为我们提供默认构造函数。
注意事项: - 全局对象的构造函数是先于main函数执行的。
- 虽然一个对象可以定义多个构造函数,但是有的构造函数只接受一个实参,系统就不知道使用哪个构造函数而出错。
错 例:class clock
{
public:
clock(int H);
clock(int H,int M=2,int S=2);
…
}
int main(void)
{
clock t(5);
…
}
3.如果定义了构造函数,编译器就不再隐含生成默认的构造函数,所以你在定义新的对象时,就必须传递一个参数以使用
上面你自己定义的构造函数。
错例: class clock
{
public:
clock(int H);
…
}
int main (void)
{
clock t;
…
}
下面是关于构造函数的类定义:
下面代码是test类的使用: