我编译了以下代码。
#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 ++中编译?
答案 0 :(得分:2)
看看标题,我猜你试图这样做:
int& b = a;
据我所知, &
是宣布参考的唯一标准。
看看@ H2CO3回答为什么在VS中进行编译。
答案 1 :(得分:1)
为什么以下在Visual Studio 2012中编译
因为VS是废话或者你把它设置为C ++ / PHP模式。
但不是用g ++?
由于未声明b
,因此仅$b
。