Article directory
Usually we need to initialize member variables, mainly in the following ways
1 No-argument constructor initializes member variables
Initialize member variables in no-argument constructor
Sample code:
#include <iostream>
#include <string>
using namespace std;
class Person
{
public:
//在无参构造函数中初始化成员变量
Person()
{
m_age = 18;
m_weight = 72.5;
m_sex = "男";
}
public:
int m_age;
double m_weight;
string m_sex;
};
int main()
{
Person Zhang;
cout << "姓名:" << Zhang.m_age << endl;
cout << "体重:" << Zhang.m_weight << endl;
cout << "性别:" << Zhang.m_sex << endl;
}
Output result:
姓名:18
体重:72.5
性别:男
2 Initialize member variables in the parameter list of the parameterized constructor
Sample code:
#include <iostream>
#include <string>
using namespace std;
class Person
{
public:
//在有参构造函数中初始化成员变量
Person(int age, double weight, string sex)
{
m_age = age;
m_weight = weight;
m_sex = sex;
}
public:
int m_age;
double m_weight;
string m_sex;
};
int main()
{
Person Zhang(18, 72.5, "男");
cout << "姓名:" << Zhang.m_age << endl;
cout << "体重:" << Zhang.m_weight << endl;
cout << "性别:" << Zhang.m_sex << endl;
}
Output result:
姓名:18
体重:72.5
性别:男
3 Initialize member variables using an initialization list
grammar:
构造函数(): 成员变量1(), 成员变量2(), 成员变量3(), 成员变量n() {}
3.1 No-argument constructors use initialization lists
Sample code:
#include <iostream>
#include <string>
using namespace std;
class Person
{
public:
//无参构造函数使用初始化列表
Person() :m_age(18), m_weight(72.5), m_sex("男")
{
}
public:
int m_age;
double m_weight;
string m_sex;
};
int main()
{
Person Zhang;
cout << "姓名:" << Zhang.m_age << endl;
cout << "体重:" << Zhang.m_weight << endl;
cout << "性别:" << Zhang.m_sex << endl;
}
Output result:
姓名:18
体重:72.5
性别:男
3.2 Argument constructors use initialization lists
Sample code:
#include <iostream>
#include <string>
using namespace std;
class Person
{
public:
//有参构造函数使用初始化列表
Person(int age, double weight, string sex) :m_age(age), m_weight(weight), m_sex(sex)
{
}
public:
int m_age;
double m_weight;
string m_sex;
};
int main()
{
Person Zhang(18, 72.5, "男");
cout << "姓名:" << Zhang.m_age << endl;
cout << "体重:" << Zhang.m_weight << endl;
cout << "性别:" << Zhang.m_sex << endl;
}
Output result:
姓名:18
体重:72.5
性别:男
4 Initialize when declaring member variables
Sample code:
#include <iostream>
#include <string>
using namespace std;
class Person
{
public:
int m_age = 18;
double m_weight = 72.5;
string m_sex = "男";
};
int main()
{
Person Zhang;
cout << "姓名:" << Zhang.m_age << endl;
cout << "体重:" << Zhang.m_weight << endl;
cout << "性别:" << Zhang.m_sex << endl;
}
Output result:
姓名:18
体重:72.5
性别:男