新手学习C++:我应该使用Visual Studio吗?

12

我即将开始我的第一个C++项目。在过去的10年中,我做过很多C#和VB(VB6和VB.NET),以及Java和其他一些东西,只是直到现在才有学习C++的需求。

我计划使用Visual Studio 2008,但我想知道有经验的C++程序员是否认为Visual Studio是新手学习C++的好IDE。

在任何方面上,VS会让我更难正确地学习编程吗?

VS会鼓励任何不良习惯吗?

有什么需要注意的陷阱吗?


这个问题被搁置了九年。有趣。顺便说一句,Konrad和Neil的答案实际上都基于专业知识,并且在当时对我非常有帮助。 - John M Gant
13个回答

34

首先,VS 2008非常强大,可能是C++编程中最好的IDE之一(至少配合支持插件如Visual Assist X)。

需要注意的是,C ++ 是一个难以让编译器正确处理的语言,并且默认警告级别相当宽松。 因此,它经常会容忍错误或错误的代码。 始终建议在其他编译器上检查代码 - 至少在启用严格模式下使用 g++ 的高警告级别。

此外,鼓励在Visual Studio中将警告级别设置得更高。


7
提高警告级别加一。 - Greg D
1
你知道吗,这真的是我工作中的一大烦恼,因为有些开发人员使用VS,然后我必须修复他们所有的“错误”才能让它在UNIX上正常运行。 - igorgue
3
为什么这是你的任务?你不能拒绝他们的代码吗?在你的工作场所推动编码标准(包括警告级别规则)?无论如何,向你表示慰问。 - Konrad Rudolph

20

Visual Studio 是一款出色的 C++ 集成开发环境。如果你已经熟悉了 C# 的话,使用起来会更加得心应手。


16
有一些事情需要注意,像 C++ 这样的语言在学习时最好不要使用 IDE,而是从命令行开始构建。这将让你深刻理解 C++ 编译和链接过程的各个阶段,并且如果你需要真正的跨平台可移植性,这将对你大有裨益。

1
是的,我认为对于习惯于像VS这样高效环境的程序员来说,这将会非常缓慢、痛苦和令人沮丧。 - Dave Van den Eynde
2
我不建议你在所有项目中都使用命令行(我使用Code::Blocks),但了解IDE隐藏的底层机制是一个好主意。当然,你应该知道如何使用命令行编译和链接一个简单的两个文件的应用程序,使用你选择的工具集。 - anon
2
我同意Neil的观点。出于同样的原因,学习如何编写MSBuild项目也是值得的。当Visual Studio出现问题(它确实会偶尔出现问题)并且您需要修复它时,这将非常有帮助。 - Rob
+1 Linux + gcc + Nano = 幸福 - James
在没有集成开发环境的情况下编写不超过15行的合理大小函数是一种痛苦。因此,那些没有使用IDE的人往往会在包含数十万行代码的源文件中编写超过1000行的可怕函数。 - Marian Spanik
显示剩余3条评论

3

VS 2008适用于开发C ++。像其他人说的那样,我会购买Visual Assist X,因为它可以提供强大的Intellisense和更好的代码大纲。此外,与VS一起使用的MSDN文档具有出色的质量,并包括对C ++语言和标准库的完整描述。在Windows上,您如果不使用VS将是疯狂的。


1
如果必须在Windows上工作,即使只是需要在Windows上运行的代码,我也会使用可移植的工具,以防万一。未来很难预测... - Pietro

2

如果你已经通过C#了解了Visual Studio,那么请使用它。我同意其他人的观点,你应该投资于Visual Assist。


2

你最好使用代码编辑器和构建工具

作为一个IDE,VS相当糟糕(这是主观的)。有很多替代品(肯定更轻量级)

所谓构建工具,不仅指编译器,还包括某种制作/编译等

这样你就可以准备进行真正的跨平台开发(首先),并且作为奖励,你将获得更快速、更舒适的“非小型”项目构建——一条命令构建所有内容。虽然你可以在VS中获得相同的结果(真的吗?),但速度会更快。此外,你可以按照自己想要的方式来设置项目结构8)

至于参考资料,我在我的宠物项目中使用source insight + kjam + msvc编译器


所有这些都是为了一个新的C++程序员?好像学习C++还不够难的。 - Idan K
1
你知道的,特别是对于一个新程序员来说。不过我必须说,jmgant谈到了拥有编程经验,所以他可能已经通过一些艰难的方式学到了一些东西。 我所说的“特别是对于一个新程序员来说”是指很容易养成坏习惯,而将自己与msvs联系起来就是一个完美的例子。 这就是为什么(至少在我所在的地方),即使你毕业成为一名程序员,你也会有分析课程。当你学习时,你应该走最艰难的道路,以后会更容易的;-) - Alexey Orlov

1

我记得几年前在使用VS时遇到了一些麻烦。实际上问题出在C++编译器上,因为他们没有完全实现语言的某些特性,或者至少没有按照标准的方式实现。

我们转而使用Eclipse CDT,因为它相对容易使用其他编译器,支持自定义makefile和多个目标。

但是如果你计划开发Win32应用,VS可能是最安全的选择。


1
Visual C++曾经对C++标准的兼容性很差。这在6.0和7.0时期确实是事实。然而,微软在7.1(Visual C++ .NET 2003)中取得了巨大进展。现代版本的Visual C++对标准C++有非常好的支持。尽管如其他答案所述,使用至少两个编译器并提高警告级别是一个好主意。 - ChrisInEdmonton

1
我正在做类似的事情;我已经做了很多Java编程,并在不久前开始学习C++。当我开始学习一门新语言时,我喜欢通过编写较小的程序来解决各种语法差异的问题。尽管Visual Studio非常适合大型项目,但我认为它倾向于增加很多冗余代码。我赞同Konrad的命令行想法-这是一个很好的起点。我还使用Dev-C ++进行较小的项目。它是一个漂亮、紧凑的gcc IDE,在硬盘上只有约60MB的总占用空间,并且可以编译为Windows可执行文件而没有任何问题。祝你好运!

谢谢提供链接。我从未听说过这个。该网站上也有一些不错的C++链接。非常感谢! - John M Gant
DEv C++ 显然不再开发(并且有很多错误),我建议使用 http://www.codeblocks.org/ 上的 Code::Blocks。 - anon
感谢更新。我也会尝试那个方法。 - Feanor

1

使用Visual Studio吧,这是一种你已经熟悉的IDE,因此在工具方面它的学习曲线最低。既然你之前没有学过C++,请使用IDE而不是控制台窗口来学习。你会错过的唯一一件事情就是.NET框架。你可以在VS中使用Managed C++,但如果你计划完全使用纯C++,没有任何托管代码,一开始可能会感到害怕。

我一直注意到关于C++的一件事情就是,如果你期望当你开始使用C++时拥有与C#相同的所有工具,你可能会失望。VS是一个很棒的IDE,在.NET出现之前就已经支持了C++,所以请相信它、享受它,并记住,没有什么是完美的。


0

我曾经问过一个类似的问题这里,只不过是关于在Visual Studio上使用C语言。虽然我个人无法想象没有VS如何进行C#编程,但我发现在VS中使用C语言是一种折磨。我知道这与你所问的不完全相同,但如果你发现在C++中有类似的经历,那么请知道你并不孤单。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接