我现在正在学习 C++,因为我需要编写一些低级程序。
当我了解“auto”关键字时,它让我想起了 C# 中的“var”关键字。
那么,C#“var”和C++“auto”有什么区别呢?
原文由 Kangjun Heo 发布,翻译遵循 CC BY-SA 4.0 许可协议
我现在正在学习 C++,因为我需要编写一些低级程序。
当我了解“auto”关键字时,它让我想起了 C# 中的“var”关键字。
那么,C#“var”和C++“auto”有什么区别呢?
原文由 Kangjun Heo 发布,翻译遵循 CC BY-SA 4.0 许可协议
它们是等价的。它们都允许您不自己指定变量的类型,但变量保持强类型。以下几行在 c# 中是等价的:
var i = 10; // implicitly typed
int i = 10; //explicitly typed
以下几行在 c++ 中是等价的:
auto i = 10;
int i = 10;
但是,您应该记住,在 c++ 中, auto
变量的正确类型是使用函数调用的模板参数推导规则确定的。
原文由 SingerOfTheFall 发布,翻译遵循 CC BY-SA 3.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
在 C# 中,var 关键字仅在函数内部本地起作用:
在 C++ 中,auto 关键字不仅 可以在变量中推断 类型,还可以在函数和模板中推断类型:
从性能的角度来看, C++ 中的 auto 关键字不会影响运行时性能。并且 var 关键字 也不会影响运行时性能。
另一个不同之处在于 IDE 中的智能感知支持。 C#中的var关键字可以很容易地推断出来,你会看到鼠标悬停的类型。在 C++ 中使用 auto 关键字可能会更复杂,这取决于 IDE。