[C++之旅] 10 构造函数
构造函数的特点
- 构造函数在对象实例化时被自动调用
- 构造函数与类同名
- 构造函数没有返回值
- 构造函数可以有多个重载
- 实例化对象时仅用到一个构造函数
- 当用户没有定义构造函数时,编译器自动生成一个构造函数
无参构造函数
class Student
{
public:
Student() {
m_strName = "Tim";
}
private:
string m_strName;
};
Student()
为无参构造函数,在实例化一个对象时自动调用此函数。
有参构造函数
class Student
{
public:
Student(string name)
{
m_strName = name;
}
private:
string m_strName;
};
实例化对象时与无参时不同,需在实例化后加入参数,即Student s("Tim")
使用方法
有参构造函数和无参构造函数可以同时写入在类中,根据实例化对象的方法系统自动识别使用哪个构造函数。
class Student
{
public:
Student() {
m_strName = "Tim";
}
Student(string name) {
m_strName = name;
}
private:
string m_strName;
};
若实例化对象方式为Student s1;
则调用无参的构造函数;
若实例化对象方式为Student s2("Tim");
则调用有参的构造函数;