21xrx.com
2024-09-20 01:01:51 Friday
登录
文章检索 我的文章 写文章
如何使用C++的初始化列表
2023-07-12 18:40:04 深夜i     --     --
C++ 初始化列表 构造函数 变量初始化 成员初始化

在C++中,初始化列表是一种用于初始化类成员的方法。它可以使代码更加简洁清晰,并且可以提高程序的效率。这篇文章将介绍如何使用C++的初始化列表。

定义初始化列表

当定义一个类的成员时,可以使用初始化列表来初始化它们。例如:


class Person {

public:

 Person(string name, int age) : name_(name), age_(age) {}

 // ...

private:

 string name_;

 int age_;

};

在上面的代码中,类Person有两个成员变量,一个是字符串类型的name,一个是整数类型的age。在构造函数中,使用初始化列表来初始化这两个成员变量。

在初始化列表中,可以一次性初始化多个成员变量。例如:


class Person {

public:

 Person(string name, int age, string address)

   : name_(name),

    age_(age),

    address_(address) {}

 // ...

private:

 string name_;

 int age_;

 string address_;

};

在上面的代码中,类Person有三个成员变量,一个是字符串类型的name,一个是整数类型的age,一个是字符串类型的address。在构造函数中,使用初始化列表同时初始化这三个成员变量。

使用默认值初始化成员变量

在初始化列表中,可以使用默认值来初始化成员变量。例如:


class Person {

public:

 Person(string name = "Unknown", int age = 0)

   : name_(name), age_(age) {}

 // ...

private:

 string name_;

 int age_;

};

在上面的代码中,类Person有两个成员变量,一个是字符串类型的name,默认值是"Unknown",一个是整数类型的age,默认值是0。在构造函数中,使用初始化列表来初始化这两个成员变量。如果调用构造函数时不传递任何参数,那么这两个成员变量将会被默认值初始化。

在初始化列表中调用父类构造函数

当定义一个派生类时,在初始化列表中可以调用父类的构造函数来对父类进行初始化。例如:


class Father {

public:

 Father(int age) : age_(age) {}

 // ...

private:

 int age_;

};

class Son : public Father {

public:

 Son(int age, string name)

   : Father(age), name_(name) {}

 // ...

private:

 string name_;

};

在上面的代码中,类Son继承类Father。在Son的构造函数中,使用初始化列表调用Father的构造函数来对Father进行初始化。注意在Son类的定义中需要声明父类为public继承。

总结

使用C++的初始化列表可以使代码更加清晰易懂,并且提高程序的效率。在初始化列表中可以一次性初始化多个成员变量,使用默认值初始化成员变量,以及调用父类的构造函数对父类进行初始化。掌握这些方法可以帮助我们更好地使用C++的初始化列表。

  
  

评论区

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