错误

不允许类内初始化,非常量静态成员;

class.cpp:7:13: error: ISO C++ forbids in-class initialization of non-const static member ‘A::b’static int b=0;

代码

class A
{virtual void fun1(){};int a;
public:static int b=0;

为什么要加这么个限制

如果包含这个类的头文件,被多个cpp文件引用,可能造成困扰。
https://stackoverflow.com/questions/9656941/why-cant-i-initialize-non-const-static-member-or-static-array-in-class?noredirect=1&lq=1
https://www.stroustrup.com/bs_faq2.html#in-class
The Design and Evolution of C++

So why do these inconvenient restrictions exist? A class is typically declared in a header file and a header file is typically included into many translation units. However, to avoid complicated linker rules, C++ requires that every object has a unique definition. That rule would be broken if C++ allowed in-class definition of entities that needed to be stored in memory as objects. See D&E for an explanation of C++'s design tradeoffs.

但是为了适应需求:在c++17里,有了 这种语法:static inline int maxNumberOfNeighbors = 4;
如果使用c++11 编译,出现warning:

class.cpp:7:20: warning: inline variables are only available with -std=c++17 or -std=gnu++17static inline int b=0;

使用c++17, 编译正常。

C++:错误:ISO C++ forbids in-class initialization of non-const static member ‘A::b’相关推荐

  1. C++: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]

    不允许将字符串常量,给char指针. warning.c: In function 'int main()': warning.c:9:19: warning: ISO C++ forbids con ...

  2. linux c++ 警告 warning: ISO C++ forbids converting a string constant to ‘char*‘ [-Wwrite-strings] 解决方法

    在C++中, char* p = "abc"; // valid in C, invalid in C++ 会跳出警告:warning: ISO C++ forbids conve ...

  3. linux c 内核 ISO C90 forbids mixed declarations and code 警告

    编译的时候经常会遇到   ISO C90 forbids mixed declarations and code 警告 百度了一下,知道是如下原因 :        变量定义之前任何一条非变量定义的语 ...

  4. arm linux c++编译警告:ISO C++ forbids converting a string constant to ‘char*’(需要把const char*转换成char*)

    编译时遇到警告: /home/yg/rv/sdk/rv1.8/rv1126_rv1109/buildroot/output/rockchip_rv1126_rv1109/build/ky_ai_cam ...

  5. warning: ISO C++ forbids converting a string constant to ‘char*‘ [-Wwrite-strings]

    warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] 在C++11中有明确规定 char ...

  6. warning: ISO C forbids an empty translation unit [-pedantic]

    root@Ubuntu32:/home/zhangbin/codeStore/testCODE/testMeServerRTSP/mework/meserver/meserver# make gcc ...

  7. warning ISO C90 forbids mixed declarations and code

    warning:ISO C90 forbids mixed declarations and code 变量定义之前任何一条非变量定义的语句(重视:语句是会带分号的)都会引起这个警告! 将非变量的定义 ...

  8. warning:ISO C90 forbids mixed declarations and code

    warning:ISO C90 forbids mixed declarations and code 变量定义之前任何一条非变量定义的语句(重视:语句是会带分号的)都会引起这个警告! 将非变量的定义 ...

  9. warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]

    warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] 这个警告出现在我编译驱动程序中 ...

最新文章

  1. 【面试题】如何设计一个高并发的系统?
  2. BZOJ 1260:[CQOI2007]涂色paint
  3. Mercury:唯品会全链路应用监控系统解决方案详解
  4. HighNewTech:带你解读云计算、雾计算(Fog Computing)、边缘计算(Edge Computing)的前世今生
  5. linux编译cmake
  6. mysql命令行cmd_CMD命令行操作MySQL
  7. java循环输出_Java实现excel导出(内容循环多个)
  8. Activiti工作流(三)——流程变量
  9. 网站禁止复制类型的属性
  10. 数据结构 统计二叉树中度为0,1和2的结点个数
  11. java替换的程序_Java文本文件批量替换小程序的方法
  12. python 安居客 爬虫_python 自动抓取分析房价数据——安居客版
  13. HDMI 2.0高速电平转换芯片——LK361S20
  14. 金蝶K3服务器安装与配置方法详细图解
  15. 怎么读取cf卡id_CF卡传输程序的步骤解析
  16. 轻体重者入门跑鞋选购全攻略(包括跑姿分析及跑鞋推荐)
  17. 数据结构(二): 链表篇
  18. 【android】几种模拟按键、屏幕点击的方法
  19. 全面解析终极移动终端“MID”(三):MID集成热点应用
  20. 全球最大电音音乐节Tomorrowland | FTX Europe将与电子音乐节Tomorrowland合作

热门文章

  1. jsp中获取上个页面传过来的参数的值的方式
  2. bal插口_中国银行银企对接接口格式(企业接口).doc
  3. 360二代加固脱壳方法总结
  4. All Palindrome
  5. 软件测试是什么?我如果要学的话都该学哪些技能?
  6. 初探国产蓝牙软件SDK
  7. 微信小程序 keyboard-accessory组件
  8. 十六进制和十进制有符号数转换
  9. 微信小程序开发页面总结-文档(ing)
  10. saltstack+git+rsync发布代码