search

Home  >  Q&A  >  body text

c++ - 类中的数组声明

#include <iostream>

using namespace std;
const int i = 1;
class T
{
    char arr[i];
    enum{i = 2};
};
int main()
{
    getchar();
}

为什么这个可以编译通过哦?我看ISO文档草稿,标准里面说那个重新定义了一个i是错的啊。我用clang,g++,vc编译都通过了。为什么编译器的实现不按照标准来呢?在《c++语言的设计和演化》一书中,说了这个是遵循ARM查找规则,但是不遵循ANSI/ISO标准。

PHP中文网PHP中文网2767 days ago636

reply all(2)I'll reply

  • 怪我咯

    怪我咯2017-04-17 14:52:00

    T::i
    Word count patch~

    reply
    0
  • PHP中文网

    PHP中文网2017-04-17 14:52:00

    Can you tell me the passage you read?
    In the standard I read, T::i is defined in the class, not redefined. And this T::i is still private.

    reply
    0
  • Cancelreply