1

次のコードをコンパイルしました。

#include <iostream> 

int main(int argc, char* argv[]) {
    int a = 2; 
    int $b = a; 
    b = 3; 
    std::cout << a << std::endl;
    return 0; 
} 

Visual Studio 2012でコンパイルすると、期待どおりに3が出力されます。ただし、g ++ 3.4.4でコンパイルすると、次のエラーが発生します。

error: `b' undeclared (first use this function)

なぜ以下はVisualStudio2012でコンパイルされますが、g ++ではコンパイルされないのですか?

4

2 に答える 2

2

タイトルを見て、あなたはこれをやろうとしていたと思います:

int& b = a;

&私の知る限り、参照を宣言する唯一の基準です。

これがVSでコンパイルされる理由については、@H2CO3の回答を参照してください。

于 2013-03-24T06:46:44.213 に答える
1

VisualStudio2012で次のコンパイルが行われるのはなぜですか

VSががらくたであるか、C ++/PHPモードに設定しているためです。

しかし、g ++ではありませんか?

宣言されていないためb、。のみ$b

于 2013-03-24T06:46:22.033 に答える