如何初始化类中的静态常量对象并使用它
How can I initialize a static const object in a class and use it?
所以我有
// MyClass.h
class MyClass
{
private:
static const Color::Color myColor
public:
void SomeMethod();
}
// MyClass.cpp
const Color MyClass::myColor = Color::Color::Blue;
// or
const Color MyClass::myColor(Color::Color::Blue);
void MyClass::SomeMethod()
{
Color c = this->myColor;
Color c1 = Color::Color::Blue;
}
在本例中,未设置Color c
变量。但CCD_ 2设置成功。
通常,我建议提供一个完全可编译的示例来显示您的问题。下面我已经包含了看起来像您的测试用例的内容,它按预期工作。
#include <cassert>
enum class Color {
Red = 1,
Blue = 2
};
class MyClass {
private:
static const Color myColor;
public:
void SomeMethod();
};
const Color MyClass::myColor = Color::Blue;
void MyClass::SomeMethod()
{
Color c = this->myColor;
Color c1 = Color::Blue;
assert(c == Color::Blue);
assert(c1 == Color::Blue);
}
int main() {
MyClass x;
x.SomeMethod();
}
尝试
class MyClass
{
private:
static const Color::Color myColor = Color::Color::Blue;
public:
void SomeMethod();
};
相关文章:
- 代理对象的常量正确性
- 返回常量对象引用 (getter) 和仅返回字符串有什么区别?
- 如何使用数据对象上的常量指针初始化类
- 为什么C++在将一个对象复制到另一个对象时需要对这两个对象进行低级常量限定
- 为什么当我们有常量引用时创建临时对象?
- 是否可以使用非常量指针调用非常量函数,以及当两个unique_ptrs指向同一个对象时程序的行为方式?
- C++,如何使用常量对象和非常量对象进行比较?
- 通过从构造函数中的'this'复制的指针改变常量对象
- 为什么我可以改变常量对象中的成员变量,这是返回常量对象函数的结果?
- C++将常量字符* 指针数组传递给对象
- C++ 对非常量对象的常量引用和对非常量对象的非常量引用之间的区别
- 未定义的对象(〔basic.life〕/8):为什么允许引用重新绑定(和常量修改)
- 当类具有常量时,将对象插入到向量中
- 算法不适用于非常量对象的const_iterator
- C++:允许临时对象调用非常量成员函数的设计理念是什么?
- 为什么MSVC14允许声明指向动态未初始化常量对象的指针
- 可作为常量调用的比较对象
- C++中的常量对象或私有/常量数据成员(变量)?
- 将值从指针复制到常量对象参数
- 如何正确组合可变对象常量