[C++之旅] 10 构造函数

[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");则调用有参的构造函数;

你可能感兴趣的:([C++之旅] 10 构造函数)