类的参数列表初始化
1 目标
本文的目的是了解类的参数列表初始化。
2 示例代码
在C++中,类的参数列表初始化(initializer list)是一种初始化成员变量的方式。与在构造函数体内赋值相比,参数列表初始化通常更高效,尤其是当成员变量是对象或常量时。使用参数列表初始化可以避免额外的默认构造和赋值操作,从而提高效率。
2.1 没有使用参数列表初始化的情况
union 在这个例子中,name 和 age 在构造函数体内被赋值。这会导致name先通过默认构造函数初始化,然后再被赋值。
#include <iostream>
#include <string>
class Person {
private:
std::string name;
int age;
public:
// 构造函数在函数体内初始化成员变量
Person(const std::string& n, int a) {
name = n;
age = a;
}
void print() const {
std::cout <<