c++ - 如何在构造函数c ++中初始化多个const变量?

use*_*125 -1 c++ variables static constructor

标题:

#ifndef EMPLOYEE_H_
#define EMPLOYEE_H_
#include "Date.h"
#include "String.h"

class Employee {
private:
    String firstname;
    String lastName;
    const Date birth;
    const int id;
    const Date start;
    double salary;
    int status;
public:
    Employee();
Employee(char* firstname,char* lastname,Date birth,int id,Date start,double salary,int status);
virtual ~Employee();
};
Run Code Online (Sandbox Code Playgroud)

中央人民政府:

#include "Employee.h"
#include "Date.h"
#include "String.h"


Employee::Employee() :id( 0 ) {
    salary=0;
    status=0;
}
Employee::Employee(char* firstname,char* lastname,Date birth,int Id,Date start,double   salary,int status){
}

Employee::~Employee() {

}
#endif /* EMPLOYEE_H_ */
Run Code Online (Sandbox Code Playgroud)

如何初始化构造函数中的所有const变量??(我不能用很少的文字发帖……忽略这个 bal bla bla bla bla bla bla bla bla bla bla bla)。

Ben*_*ley 5

您使用的初始化方法id是构造函数初始化列表的一部分。这是一个列表,因为它可以用来初始化多个值,逗号分隔。如果可能,您甚至可以并且应该使用它来初始化非常量成员。

Employee::Employee()
    :birth(args),
     id( 0 ),
     start(args),
     salary(0.0),
     status(0)
{}
Run Code Online (Sandbox Code Playgroud)

请注意,我按照成员出现在类主体中的相同顺序对成员进行了排序。这不是必需的,而是一种很好的做法,因为无论如何,这都是它们初始化的顺序,无论您列出它们的顺序如何。如果一个成员的初始化依赖于另一个成员的值,这将变得尤为重要。