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)

为什么以下内容在 Visual Studio 2012 中编译但在 g++ 中不编译?

4

2 回答 2

2

看标题,我猜你正在尝试这样做:

int& b = a;

&据我所知,是声明引用的唯一标准。

看看@H2CO3 回答为什么在 VS 中编译。

于 2013-03-24T06:46:44.213 回答
1

为什么以下在 Visual Studio 2012 中编译

因为要么 VS 是废话,要么您将其设置为 C++/PHP 模式。

但不在 g++ 中?

因为b没有声明,只有$b.

于 2013-03-24T06:46:22.033 回答