c++ - 类中的数组声明
PHP中文网
PHP中文网 2017-04-17 14:50:00
0
2
679
#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中文网

认证0级讲师

全員に返信(2)
刘奇

T::i
単語カウントパッチ~

いいねを押す +0
Ty80

あなたが読んだ一節を教えてもらえますか?
私が読んだ標準では、T::i は再定義ではなくクラス内で定義されています。そして、この T::i はまだ非公開です。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート