简体   繁体   English

为什么易变静态成员初始化会产生重新定义编译错误?

[英]Why Volatile Static Member Initialization Generate Redefinition Compilation Error?

My Problem is the following: 我的问题如下:

I have a class with static counter. 我有一个带有静态计数器的类。 I set this counter as volatile because I use this variable in multithreaded environment. 我将此计数器设置为volatile,因为我在多线程环境中使用了此变量。

class.h class.h

class myClass
{
 public:
 volatile static int mCounter;
 (...)
};

class.cpp class.cpp

int myclass::mCounter = 0;

In CPP file, I initialize it, and I obtain the following compilation error: 在CPP文件中,我对其进行了初始化,并获得以下编译错误:

'mCounter' : redefinition; different type modifiers

Why ? 为什么呢

Thanks in Advance. 提前致谢。

您还需要在该行上重复“ volatile”。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 编译错误 - Static 成员 - Compilation error - Static member 静态成员初始化链接错误 - Static member initialization link error 私有静态成员-编译错误? - Private static member - compilation error? (2 questions) 'class' type redefinition (even with #pragma once), and static member object initialization inside a static function? - (2 questions) 'class' type redefinition (even with #pragma once), and static member object initialization inside a static function? R:安装羽毛包时出现编译错误“ ISO C ++禁止非常量静态成员的类内初始化” - R: Compilation error “ISO C++ forbids in-class initialization of non-const static member” when installing feather package STL作为静态易失成员的问题 - Problems with STL as a static volatile member C ++代码错误(非法成员初始化,“类”类型的重新定义,“返回”:无法转换) - C++ Error in code (illegal member initialization, 'class' type redefinition, 'return' : cannot convert) Static 成员初始化和 Singleton 设计,错误 -> 成员的多重定义 - Static Member Initialization and Singleton Design, error -> multiple definition of member 静态数据成员的初始化 - Initialization of static data member msvc内联静态成员变量重新定义 - msvc inline static member variable redefinition
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM