当前位置:  开发笔记 > 编程语言 > 正文

"const class"是什么意思?

如何解决《"constclass"是什么意思?》经验,为你挑选了4个好方法。

在找到并替换重构之后,我最终得到了这个gem:

const class A
{
};

"const class"是什么意思?好像编译好了.



1> Adam Rosenfi..:

const是在例如意义的,你的编译器应该给你一个错误,但如果你用它来宣告闭幕之间的类的变量};,然后定义这些实例作为const,例如:

const class A
{
public:
    int x, y;
}  anInstance = {3, 4};

// The above is equivalent to:
const A anInstance = {3, 4};


7.1.5.1/1:"有两个cv限定符,const和volatile.如果cv-qualifier出现在decl-specifier-seq中,则声明的init-declarator-list不应为空."
这是一个错误,因为存储类说明符仅在您具有声明符时才适用,并且在此示例中没有声明符.
我找不到使这个错误成为理由的理由.编译器可以随意发出警告,但只有标准才能确定什么算错误.

2> 小智..:

"const class"是什么意思?好像编译好了.

不适合我,它没有.我认为你的编译器只是礼貌而忽略它.

编辑:是的,VC++默默地忽略了const,GCC抱怨道.


我要说它看起来像VC++出错的边缘情况

3> Evan Teran..:

如果你有这个:

const class A
{
} a;

那么它显然意味着'a'是常数.否则,我认为这可能是无效的c ++.



4> Matt Joiner..:

除非您之后声明该类的实例,否则它是没有意义的,例如:

const // It is a const object...
class nullptr_t 
{
  public:
    template
      operator T*() const // convertible to any type of null non-member pointer...
    { return 0; }

    template
    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,则为临时实现.

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有