相关疑难解决方法(0)


为什么int x {y = 5}是可能的?

int main() {
    int y;
    int x{ y = 5 };
    //x is 5
}
Run Code Online (Sandbox Code Playgroud)

由于y = 5不是可计算的表达式,这怎么可能?

另外,为什么编译器或IDE不会抱怨main()不返回int?

c++ initialization declaration assignment-operator

10
推荐指数
2
解决办法
272
查看次数

C ++中的函数是否有任何默认返回类型?

我最近读到C ++中所有函数的默认返回类型是int。谷歌搜索并不能帮助我确认这一点。

因此:

  1. 真的是C ++中所有函数的默认返回类型int吗?
  2. 如果不是,那么C ++中的函数是否存在任何此类默认返回类型?如果是这样,那是什么?

c++ c++11

2
推荐指数
1
解决办法
238
查看次数

Gcc 4.8.3没有发现缺少'return'关键字

我们来看看这段代码:

#include <iostream>

int foo(int i) {return i; }

int foobar(int z) {return foo(z);}

int main() {
std::cout << foobar(3) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

它用g ++ -std = c ++ 11编译好...并给出输出3.但是相同的输出由下式给出:

#include <iostream>

int foo(int i) {return i; }

int foobar(int z) { foo(z);}

int main() {
std::cout << foobar(3) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

它编译没有问题,但显然foobar错过了关键字返回.这是gcc 4.8.3中的错误还是我不知道某些c ++ 11原则?(在Fedora 20上运行)

c++ gcc c++11 gcc4.8

1
推荐指数
1
解决办法
272
查看次数