c++ 用参数初始化列表对数据成员初始化

时间:2022-09-10 09:31:24

除了使用构造函数可以对类中的成员变量进行初始化,还可以使用参数初始化列表。这种方法不在函数体内对数据成员初始化,而是在函数首部实现。这样可以减少函数体的长度。

举例如下:

#include<string>
using namespace std;
class Student
{
public:
	void display();
	Student(int a,string b,char c);
private:
	int num;
	string name;
	char sex;
};

#include<iostream>
#include<string>
#include"Sudent.h"
void Student::display()
{
	cout<<"num:"<<num<<endl;
	cout<<"name:"<<name<<endl;
	cout<<"sex:"<<sex<<endl;
}
Student::Student(int a,string b,char c):num(a),name(b),sex(c){}      
注:如果数据成员是数组,则应该在构造函数的函数体内用语句进行赋值。

例如构造函数可以写为

Student(int n,char s,nam[]):num(n),sex(s),{strcpy(name,nam);}