如何在 C++ 中初始化“静态常量”数据成员?

2023-11-30

是否可以初始化一个static const构造函数之外的数据成员?它可以在声明数据成员的同一位置进行初始化吗?

class A {
private:
  static const int a = 4;
  /*...*/
};

是的,你可以,但仅限于 int 类型。 如果您希望静态成员是任何其他类型,则必须在 cpp 文件中的某个位置定义它。

class A{
private:
 static const int a = 4; // valid
 static const std::string t ; // can't be initialized here
 ...
 ...
};


// in a cpp file where the static variable will exist 
const std::string A::t = "this way it works";

另请注意,此规则已在 C++11 中删除,现在(使用提供该功能的编译器)您可以直接在类成员声明中初始化您想要的内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 C++ 中初始化“静态常量”数据成员? 的相关文章

随机推荐

  • 使用 Selection 的 RangeElements 获取 Google 文档中的所有嵌套文本元素

    在类似于上面的文档中 我可以使用以下代码获取所有段落 var paras body getParagraphs 请注意 上面的代码不仅返回顶级段落 还返回内部的所有子级别段落ListItems Tables etc 如何在选定的范围内做同样
  • 如何处理 Angular 4 中的窗口滚动事件?

    我似乎无法捕获窗口滚动事件 在几个网站上我发现了类似的代码 HostListener window scroll onWindowScroll console log Scrolling 这些片段通常来自版本 2 这在 Angular 4
  • 将内部文本文件加载为 XML

    我正在编写一个 VB NET 应用程序 我想从资源加载内部文本文件 但代码显示无效 URI Uri 字符串太长 代码是 document Load C Users Sou Documents Visual Studio 2010 Proje
  • 在交替行上交换列(左/右)

    我有一系列行 每行包含两列 宽度按 50 50 分开 我希望每隔一行交换左列 image 在右边 但我需要维护 HTML 中的顺序 因为它在较小的屏幕上显示为一列 CSS ul list style none padding left 0
  • 变量赋值后的尾随注释颠覆比较

    在 GNU make 中 附加到变量赋值的尾随注释会阻止后续比较 通过ifeq 无法正常工作 这是生成文件 A a B b trailing comment C c RESULT ifeq A a RESULT a endif ifeq B
  • DataTables 警告 - 请求第 0 行、第 0 列的未知参数“0”

    我使用 jQuery DataTable 来显示使用存储过程和 Web 服务从数据库获取的数据 我可以使用 Fiddler 运行 SP 或服务 但是当涉及到填充 DataTable 时 我收到了错误记录here 在我的具体情况下 消息是 D
  • 我如何使用注释进行聚合,如 @Query(value = "{"query":""}")

    如何使用注释通过 spring data elasticsearch 进行像 Query value query 这样的聚合 你不能用 Query注释的唯一目的是发送查询 而不是聚合 使用 Spring Data Elasticsearch
  • 将字符串替换为 DataTable 的 DataColumn 中的另一个字符串

    I have DataTable它检索多列和行 其中一栏 评论 包含数据 我想用 n dtOutput Generix getTickets DateTime Parse 1 1 1900 DateTime Now iTicket iDis
  • android:安装应用程序无需用户干预

    我想在 Android 上安装应用程序而无需用户干预 我正在使用权限INSTALL PACKAGES我正在将应用程序安装在 download 文件夹中 下载完成后 会出现一个对话框 要求我安装该应用程序 如何隐藏此对话框并在无需用户干预的情
  • POSIX 正则表达式不适用于 [:digit:] 字符类

    我在日志文件中有以下日志行access 20170118 14 log 127 0 0 1 18 Jan 2017 14 22 16 0000 GET fam shared generate test devicelist php HTTP
  • Delphi:为什么断点有时不可用(IDE 上的绿色突出显示线)?

    有时我会失去 Delphi 中的断点功能 我认为这是 Delphi 2009 的问题 但现在我在 Delphi XE 中也有它 在 Delphi 2009 中 通过删除 dproj 文件 我使断点再次起作用 在 Delphi XE 中 我无
  • 不允许销毁资产以避免数据丢失

    我的RemoveTail 函数执行以下代码时遇到了麻烦 destroy gameObject 这个蛇游戏创建了我的蛇预制件的克隆 我通过分配 尾巴 来控制蛇的长度 并在达到 maxSize 时删除 尾巴 游戏对象 我知道我的错误是由于游戏删
  • ImageMagick 将 jpg 图像转换为 gif 速度慢

    我正在使用Magick IM 7 0 3平台 CentOS Linux版本7 0 将图像转换为gif 我从文件创建 Image 对象 问题是当我将 9 个 png 文件 每个 50kb 转换为 gif 时 只需要 50ms 但当变成9个jp
  • 类别重叠分析

    我正在尝试执行一些类别重叠分析并需要帮助 我有由客户服务票组成的数据 门票上标有类别数据 票证可以包含多个类别标签 我有一个提取票证 ID 和类别的查询 我得到多行包含多个类别的 ID 我正在寻找一种显示类别重叠的方法 例如 有多少票有类别
  • 获取当前地址位置的最佳方式 Kotlin 2023

    我想创建一个当前位置按钮来获取用户的当前地址 目前我正在使用fusedLocationClient lastLocation但它很慢 有时甚至不起作用 2023 年是否有更好且更新的方法使用 Kotlin 从用户处获取当前地址 祝你今天过得
  • 是否可以将可滚动的 TextView 添加到 ListView 中?

    我有一个 ListView 其中每行都有固定的高度 每行在一些图像旁边都包含一个 TextView 有时 我想要显示的文本太大 因此我想使其可滚动 所以我添加了 基于使 TextView 在 Android 上可滚动 将以下行添加到我的 T
  • 如何从 Promise 中提取数据

    我有一个返回数据的承诺 我想将其保存在变量中 由于异步性质 这在 JavaScript 中是不可能的吗 我需要使用吗onResolve作为回调 我可以以某种方式使用它 例如用 async await 包装它 const foo bar Pr
  • 多层评论回复:显示和存储

    因此 我正在尝试创建一个评论系统 您可以在其中回复已经回复的评论 允许您创建理论上无限的回复线程 我希望它们按时间顺序显示 最新的在顶部 但回复当然应该直接位于原始评论的下方 如果有多个评论回复同一条评论 回复也应按时间顺序排列 仍在原始评
  • AngularUI 日期选择器允许输入超出范围的值

    我遇到一个问题 我使用 AngularUI 指定具有一些允许的输入值范围的日期选择器 例如 用户可以选择从2013年6月10日到2013年6月20日的日期 只要用户在日期选择器内单击 这种方法就可以正常工作 但当用户键入范围之外的日期时 这
  • 如何在 C++ 中初始化“静态常量”数据成员?

    是否可以初始化一个static const构造函数之外的数据成员 它可以在声明数据成员的同一位置进行初始化吗 class A private static const int a 4 是的 你可以 但仅限于 int 类型 如果您希望静态成员