21xrx.com
2024-12-22 19:02:53 Sunday
登录
文章检索 我的文章 写文章
C++11初始化列表的用法
2023-07-08 02:50:40 深夜i     --     --
C++11 初始化列表 语法 应用 语义

C++11初始化列表是一种在C++11标准中引入的语言特性,它允许我们在对象的构造函数中以一种更简单、更直观的方式初始化类的成员变量。

在使用初始化列表之前,我们通常用构造函数的参数来进行成员变量的初始化。例如,我们可以这样写一个Person类:


class Person {

public:

  Person(string name, int age)

    m_name = name;

    m_age = age;

  

private:

  string m_name;

  int m_age;

};

在这个例子中,我们使用Person类的构造函数中的两个参数来初始化类的成员变量m_name和m_age。然而,这种方式不太方便,特别是当一个类拥有许多成员变量时。

使用初始化列表可以让这个过程变得更加简单,并且更易于阅读和维护。我们可以像这样使用初始化列表:


class Person {

public:

  Person(string name, int age) : m_name(name), m_age(age) {}

private:

  string m_name;

  int m_age;

};

在这个新的例子中,我们使用初始化列表来初始化类的成员变量,这使得代码更加直观和可读。初始化列表的语法是在构造函数的参数列表后面加上一个冒号,并在其中指定以逗号分隔的成员变量列表,如上所示。

使用初始化列表还可以初始化常量成员变量和引用类型成员变量。例如,如果我们的Person类有一个常量成员变量:


class Person {

public:

  Person(string name, int age, const string& address)

    : m_name(name), m_age(age), m_address(address) {}

private:

  string m_name;

  int m_age;

  const string& m_address;

};

同样地,初始化列表也可以用于初始化数组类型成员变量。例如:


class MyClass {

public:

  MyClass() : m_array1 {}

private:

  int m_array[5];

};

总之,C++11初始化列表是一种简单、直观的语言特性,可以让我们通过更简单的方式来初始化类的成员变量,减少代码的复杂性和提高代码的可读性。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复