【C++】构造函数

我们在定义一个对象的同时想给它的数据成员赋值,这时候就要用到构造函数,通过构造函数来实现对象的初始化。


构造函数是类的成员函数的一种,它有一些自己的特点区别于一般函数。


1:构造函数的名称必须和类名一致。

2:构造函数没有返回值,不能用void来修饰。

3:构造函数不能直接调用,它由编译器在创建对象时自动调用。

4:用户可以自己定义构造函数,如果没有,系统会提供一个默认的空构造函数。

5:用户可以定义多个构造函数(参数类型或个数不同),也叫构造函数的重载。


下面是如何使用构造函数:

#include <iostream.h>    //输入输出流头文件
class Date               //Date类
{
	public:
		//构造函数
		//当没有对数据对象赋值时,默认年月日都为1
		Date()
		{
			year = 1;
			month = 1;
			day = 1;
		}
		
		Date(int y,int m,int d)   //通过用户来赋值
		{
			year = y;
			month = m;
			day = d;

		}
		void print() const;
	private:
		//数据成员
		int year;
		int month;
		int day;

};
void Date::print() const
{
	cout<<year<<"-"<<month<<"-"<<day<<endl;  //格式化输出year-month-day对应的年月日
}
int main(){
	Date national_day(1949,10,1);	<span style="white-space:pre">	</span>//对象初始化时通过构造函数为变量赋值 
	Date defaultday=Date();			//对象初始化时使用构造函数的默认值 
	national_day.print();			//结果为:1994-10-1
	defaultday.print();			//结果为:1-1-1
	return 0;
}

下面的例子是添加了有默认形参值得构造函数:

#include <iostream.h>    //输入输出流头文件
class Date               //Date类
{
	public:
		
		//构造函数
		Date(int y=1,int m=1,int d=1)   //当没有对数据对象赋值时,默认年月日都为1
		{
			year = y;
			month = m;
			day = d;

		}
		void print() const;
	private:
		//数据成员
		int year;
		int month;
		int day;

};
void Date::print() const
{
	cout<<year<<"-"<<month<<"-"<<day<<endl;  //格式化输出year-month-day对应的年月日
}
int main(){
	Date national_day(1949,10,1);	<span style="white-space:pre">	</span>//对象初始化时通过构造函数为变量赋值 
	Date defaultday=Date();			//对象初始化时使用构造函数的默认形参值 
	national_day.print();			//结果为:1994-10-1
	defaultday.print();			//结果为:1-1-1
	return 0;
}

两个程序相同的运行结果:


评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值