84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
#include 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标准。
认证0级讲师
T::i字数补丁~
你能告诉我你看的段落吗?我看的标准里,类中定义的是T::i,并不是重定义。而且这个T::i还是私有的。
T::i
字数补丁~
你能告诉我你看的段落吗?
我看的标准里,类中定义的是T::i,并不是重定义。而且这个T::i还是私有的。