首页 > 代码库 > 构造函数

构造函数

构造函数:构造函数是一种特殊的成员函数

构造函数的特点:

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;
}


执行结果:


第一个构造函数没有带参数,也叫默认构造函数

第二个构造函数是带参构造函数,程序中出现了两个构造函数所欲可以称为函数重载,因为是构造函数,所以叫构造函数重载