经过一些查找和替换重构后,我最终得到了这个宝石:
const class A
{
};
“常量类”是什么意思?似乎编译正常。
在那个例子中 是没有意义的,你的编译器应该给你一个错误,但是如果你用它在关闭和const
之间声明该类的变量,那么将这些实例定义为,例如:}
;
const
const class A
{
public:
int x, y;
} anInstance = {3, 4};
// The above is equivalent to:
const A anInstance = {3, 4};
“常量类”是什么意思?似乎编译正常。
对我来说不是。我认为您的编译器只是出于礼貌而忽略了它。
编辑:是的,VC++ 默默地忽略了 const,GCC 抱怨。
如果你有这个:
const class A
{
} a;
那么它显然意味着'a'是const。否则,我认为它可能是无效的 c++。
除非你在之后声明一个类的实例,否则它是没有意义的,比如这个例子:
const // It is a const object...
class nullptr_t
{
public:
template<class T>
operator T*() const // convertible to any type of null non-member pointer...
{ return 0; }
template<class C, class T>
operator T C::*() const // or any type of null member pointer...
{ return 0; }
private:
void operator&() const; // Can't take address of nullptr
} nullptr = {};
nullptr
如果您正在等待 C++0x,则为临时实现。
尝试用 GCC 编译它,它会给你以下错误:
error: qualifiers can only be specified for objects and functions.
从错误中可以看出,只有对象(变量、指针、类对象等)和函数可以是常量。因此,尝试将对象设为常量,然后它应该可以正常编译。
const class A {};
const A a ;