C++构造函数

特点:以类名作为函数名,无返回类型

 

构造函数的样子:

类名(用来初始化传入的形参,常常用const修饰):初始化列表,一般是 成员变量名(初始化的值)

{

 构造函数体,在构造函数体重也可以对成员变量进行赋值,一般来说两种初始化方法效率差不多,某些情况在初始话列表中初始化效率高一些。const变量和引用类型变量必须在初始话列表中初始化

}


class Student
{
public:
	//在没有定义构造函数的时候,系统会定义这么一个“空的构造函数”,一旦定义了任何一种构造函数
	//那么如果要这样的一个"空的构造函数",必须显示的定义一个
	Student()
	{
		name="who";
		num=0;
	}

	Student(const string Cname,const int Cnum ):name(Cname),num(Cnum)//一个比较完整的构造函数,当然也可以把初始化的过程放到函数体体重来完成
	{ }

	//这个构造函数与上面这个构造函数是一样的,所以编译器会给出“重新定义无效”的错误
	Student(const string Cname,const int Cnum)
	{
		name=Cname;
		num=Cnum;
	}

	//函数名前面加上explict可以防止隐式的类型转换
	explicit Student(const string Cname,const int Cnum)
	{
		name=Cname;
		num=Cnum;
	}
	/*构造函数重载
	
	(2)函数名字相同;
	(3)参数不同;*/
	//由于参数个数不同,这个构造函数与上面的构造函数形成重载,当然也可以因为参数的类型不同而形成重载
	Student(const string Cname)
	{
		name=Cname;
		num=1;
	}
private:
	 string name;
	 int    num;

};


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值