可能重复:
c++11 中的自动引用
我学习 C++ 越多,我就越意识到到目前为止(几乎;见下文)其中的所有内容基本上都是有意义的。我发现我真的不需要背诵任何规则,因为一切都按预期进行。所以主要的事情变成了真正理解这些概念,然后剩下的就自己处理了。
例如:
const int ci = 0;
auto &a = ci; //automatically made const (const int &)
这有效且有意义。任何其他类型的a
都是荒谬的。
但是现在拿这些:
auto &b = 42; //error -- does not automatically become const (const int)
const auto &c = 42; //fine, but we have to manually type const
为什么第一个错误?为什么编译器不会自动检测到这一点?为什么const
必须手动输入?我想从根本上真正理解为什么,这样事情才有意义,而不必背诵任何严格的规则(见上文)。