C++中类的构造函数常用知识点

C++中,类的构造函数也是类中的特殊成员函数,只是没有返回值。在程序中,只要创建类类型的新对象,都会执行构造函数,保证了对象的每个成员都具有合适的初始值。类的构造函数有以下几个特点。

第一,构造函数也可以被重载。与普通的函数一样,构造函数也可以被重载,构造函数没有返回值,是通过实参的个数和类型来决定。

class Student
{
public:
	Student();
	Student(int StuNum);
	Student(string ID);
};

第二,构造函数自动执行,只要创建一个对象的实例,就会调用合适的构造函数。如果没有适用的构造函数,编译器就会报错。

与其他函数一样,构造函数也具有名字,形参和函数体,当然,与普通函数不同的是,构造函数可以包含一个初始化列表。

Student::Student():sex("Man"),age(20)
{

}

构造函数初始化列表以一个冒号为开始,接着通过逗号对成员列表进行分离。在C++中,很多相当有丰富经验的程序员都没有掌握到这个特性,我觉得一个重要的原因就是在函数体外对类的成员进行初始化是很难理解的。

还有一个很重要的一点就是在构造函数中对类成员的初始化顺序,我们很容易就理解成根据初始化列表中对成员变量的初始化顺序来对成员变量进行初始化,但实际上不是,就拿这个Student类的第一个构造函数来说吧,初始化的顺序应该是sex然后才是age,但是实际上是反的,因为构造函数初始化列表中成员变量的初始化是根据成员变量的声明顺利来确定的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值