RHZ'S BLOG | 个人分享

  • 首页
  • 笔记
  • 小日常
  • 音乐
  • 读书
  • 软件分享
YOLO
  1. 首页
  2. 笔记
  3. C/C++
  4. 正文

成员初始化|C++

2022年9月10日 120点热度 0人点赞 0条评论

成员初始化程序

回想一下,常量是不能改变的变量,所有 const 变量必须在创建时被初始化。

C++ 提供了一个方便的语法来初始化类成员,称为成员初始化列表(也称为构造函数初始值设定)。

成员初始化

例如:

class MyClass {
  public:
   MyClass(int a, int b) {
    regVar = a;
    constVar = b;
   }
  private:
    int regVar;
    const int constVar;
};

这个类有两个成员变量 regVar 和 constVar。有一个构造函数,构造函数有两个参数,用于初始化成员变量。

运行这个代码会返回一个错误,因为它的一个成员变量是一个常量,在声明之后不能赋值。

在像这样的情况下,可以使用成员初始化列表为成员变量赋值。

class MyClass {
 public:
  MyClass(int a, int b)
  : regVar(a), constVar(b)
  {
  }
 private:
  int regVar;
  const int constVar;
};

请注意,在语法中,初始化列表遵循构造函数参数。该列表以冒号(:)开始,然后列出要初始化的每个变量以及该变量的值,并用逗号分隔它们。

使用语法 变量(值) 来分配值。

初始化列表消除了在构造函数体中放置显式赋值的需要。此外,初始化列表不以分号结束。

成员初始化|C++插图
Student::Student(int a,int b)
:age(a),num(b){
}

成员初始化程序

我们使用单独的头文件和源文件来编写前面的示例。

MyClass.h

class MyClass {
  public:
   MyClass(int a, int b);
  private:
   int regVar;
   const int constVar;
};

MyClass.cpp

MyClass::MyClass(int a, int b)
: regVar(a), constVar(b)
{
  cout << regVar << endl;
  cout << constVar << endl;
}

我们在构造函数中添加了 cout 语句来显示成员变量的值。

下一步是在 main 中创建我们的类的对象,并使用构造函数来赋值。

#include "MyClass.h"

int main() {
  MyClass obj(32, 56);
}

/*输出 
32
56
*/

构造函数用于创建对象,通过成员初始化列表将两个参数分配给成员变量。

成员初始化|C++插图1

成员初始化列表可以用于常规变量,常量变量。

常量变量必须使用成员初始化列表进行初始化。

即使在成员变量不是常量的情况下,使用成员初始值设定语法也是很有意义的。

成员初始化|C++插图2
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2022年9月10日

RHZ

即使单枪匹马,我亦勇敢无畏

点赞
< 上一篇
下一篇 >

文章评论

取消回复
归档
  • 2023年2月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年8月
  • 2021年7月

COPYRIGHT © 2022 RHZ的博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

渝ICP备2022008933号-1