为什么C和C++ IDE工具支持可用于托管平台?

use*_*421 5 .net c c++ java ide

如果您使用过任何体面的java或.net IDE,您可以看到它们提供的丰富功能,这些功能要么在c/c ++ IDE中不存在,要么以更有限的形式存在.

我正在考虑以下功能:

  • 代码完成
  • 语法错误(和编译错误,无需编译)
  • 重构
  • 调试(调试器可以向您显示有关对象的信息量)
  • 代码探索和分析(查看类型层次结构,调用此函数等...)

托管语言的主要特征是什么,使他们能够提供这种(大多数人会说)在工具方面的卓越支持?

Sam*_*ell 11

C++是一种非常难以解析的语言.对于成功处理它的解析器(编译器)来说,它们太慢而且不够灵活,不足以支持IDE样式的代码支持.与编译器不同,在IDE中,解析器必须非常快并且能够处理语法错误的代码.到目前为止,没有人花时间去做,因为具备这种技能所需的人员完全专注于实际的编译器.

Visual Studio 2010具有改进的C++ IntelliSense引擎.他们用了很多年才完成它,但是它大大改进了.

  • @alex:关于我自己一个真正的(C++)程序员,我经常发现自己在尝试手动定位特定函数的声明时会诅咒. (2认同)
  • @alex:你有1)从未使用1M行的代码库工作,或2)有一种神奇的能力来记住一切随意组织的10000个源文件.要么是好的,但对我来说,我没有这种神奇的能力,所以IDE非常有用. (2认同)

Ste*_*n C 5

像C和C++这样的语言使得完成和语法修正变得更加困难,因为语法比(比如说)Java更复杂.例如,预处理器使事情变得更加艰难.

重构更难,因为C/C++较弱的类型系统使得更难以了解重构是否会保留原始代码的含义.

调试更难,因为C/C++较弱的类型系统意味着很难知道"真实"类型的运行时值实际上是什么.