#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标准。
T::i
字數補丁~
你能告訴我你看的段落嗎?
我看的標準裡,類別中定義的是T::i,並不是重定義。而且這個T::i還是私有的。