21xrx.com
2024-11-05 17:34:41 Tuesday
登录
文章检索 我的文章 写文章
C++11中的类成员初始化
2023-06-24 08:31:09 深夜i     --     --
C++11 类成员 初始化

C++11引入了类成员初始化的新特性,使得在定义类成员的同时能够直接进行初始化,避免了先定义后赋值的繁琐过程,提高了代码的可读性和可维护性。

在C++11之前,类成员初始化只能在构造函数初始化列表中进行,这样的话,在类成员数量较多时容易出错,而且代码也难以阅读。C++11中,可以使用以下两种方法进行类成员初始化:

1.在类定义时进行初始化

可以在类定义中直接给定初始值,如下所示:


class MyClass

  int x = 10;

  float y = 3.14f;

  char z = 'a';

;

这样一来,我们可以在创建对象时不必再给它们赋值。

2.使用构造函数初始化列表

在C++11中,还可以继续使用构造函数初始化列表,但要注意的是,如果同时在类定义和构造函数中进行初始化,那么类定义中的初始化将会被忽略,只有构造函数中的初始化会生效。


class MyClass{

  int x = 10;

  float y = 3.14f;

  char z = 'a';

public:

  MyClass(int x_, float y_, char z_) : x(x_), y(y_), z(z_){}

};

上述代码中,在类定义时给定了x、y、z三个成员变量的初值,然后在构造函数中再次进行了初始化。

总体来说,类成员初始化使得我们在定义类成员时就可以同时进行初始化,让代码更加简洁、易读,同时也能减少错误的发生。当然,在使用该特性时也需要注意不要将类定义和构造函数中的初始化混淆,以免出现错误。

  
  

评论区

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