首页 >后端开发 >C++ >如何在 C 中正确初始化常量数据成员?

如何在 C 中正确初始化常量数据成员?

Susan Sarandon
Susan Sarandon原创
2024-12-09 00:58:11820浏览

How to Properly Initialize Constant Data Members in C  ?

初始化常量数据成员

在C编程中,常量数据成员用于定义初始化后不能修改的值。当尝试在类定义中初始化 const 数据成员时,由于 C 的限制,您可能会遇到错误。

错误解释

编译器错误是由于C 禁止在类定义中初始化 const 数据成员。这是为了防止在不同的翻译单元中对同一个数据成员进行多个定义。

解决方案:类外初始化

要初始化 const 数据成员,必须是定义在类定义之外。这可以使用构造函数中的初始值设定项列表来实现,如下所示:

#include <iostream>

using namespace std;

class T1 {
  const int t;  // Declaration of const data member

public:

  T1() : t(100)  // Initialization in initializer list
  {
    cout << "T1 constructor: " << t << endl;
  }
};

初始值设定项列表

构造函数中的初始值设定项列表初始化 const 数据成员在类初始化之前。这允许在创建类对象之前分配值。

进一步注意事项

需要注意的是,使用初始值设定项列表初始化 const 数据成员必须在构造函数中完成,并且不能在程序中稍后修改。

以上是如何在 C 中正确初始化常量数据成员?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn