构造函数:构造函数是一种特殊的成员函数
构造函数的特点:
1 构造函数的函数名和类名相同
2 构造函数没有返回值
3 构造函数用于初始化对象
通过一个实例说明构造函数的作用
#include <iostream>
using namespace std;
class Time//时间类
{
public:
void set_time();//设置时间
void show_time();//显示时间
//定义一个构造函数用于对对象初始化
Time()
{
hour = 0;
minute = 0;
sec = 0;
}
private:
int hour;
int minute;
int sec;
};
//设置时间
void Time::set_time()
{
char ch1, ch2;
cout<<"请输入一个时间,(格式hh:mm:ss)";
cin>>hour>>ch1>>minute>>ch2>>sec;
}
//显示时间
void Time::show_time()
{
cout<<hour<<":"<<minute<<":"<<sec<<endl;
}
int main()
{
Time t1;//定义一个t1时间对象
t1.show_time();//显示时间
return 0;
}
执行结果:
上面的代码中定义了一个构造函数Time,其作用是初始化时间对象
上面的构造函数Time也可以像普通的成员函数一样在类中定义在类外面实现功能
//定义一个构造函数用于对对象初始化
Time::Time()
{
hour = 0;
minute = 0;
sec = 0;
}
也可以同时定义多个构造函数(构造函数重载)
#include <iostream>
using namespace std;
class Time//时间类
{
public:
void set_time();//设置时间
void show_time();//显示时间
//定义一个构造函数用于对对象初始化
Time();
//带参数的构造函数
Time(int h, int m, int s);
private:
int hour;
int minute;
int sec;
};
//设置时间
void Time::set_time()
{
char ch1, ch2;
cout<<"请输入一个时间,(格式hh:mm:ss)";
cin>>hour>>ch1>>minute>>ch2>>sec;
}
//显示时间
void Time::show_time()
{
cout<<hour<<":"<<minute<<":"<<sec<<endl;
}
//定义一个构造函数用于对对象初始化
Time::Time()
{
hour = 0;
minute = 0;
sec = 0;
}
//带参数构造函数
Time::Time(int h, int m, int s)
{
hour = h;
minute = m;
sec = s;
}
int main()
{
Time t1;//定义一个t1时间对象
t1.show_time();//显示时间
Time t2(10,49,28);
t2.show_time();
return 0;
}
执行结果:
第一个构造函数没有带参数,也叫默认构造函数
第二个构造函数是带参构造函数,程序中出现了两个构造函数所欲可以称为函数重载,因为是构造函数,所以叫构造函数重载