【发布时间】:2010-11-05 10:06:16
【问题描述】:
我有一个类,其中包含指向类外部常量 VARIANT 值的指针,但有时我想更改此指针以引用类本身的 VARIANT 成员对象。
这个类的大多数实例都是常量,所以我必须将指针声明为可变的。
在 Visual C++ 中,这段代码似乎可以满足我的要求:
VARIANT mutable const* m_value;
但是,由于 mutable 是指针的属性而不是指针的属性,我认为这是正确的语法:
VARIANT const * mutable m_value;
类似于定义常量指针(而不是指向 const 对象的指针)的方式。不过 Visual C++ 不接受这种变体。
警告 C4518:“可变”:此处意外的存储类或类型说明符;忽略
Visual C++ 是否正确,还是我遗漏了什么?另一个更符合标准的编译器是否会有不同的行为?
【问题讨论】:
标签: c++ pointers constants mutable