9

我需要快速掌握 C++(我以前从未使用过它)——通过 Visual Studio(即托管 C++)学习会有用吗?还是我最终会在 VS 中学习 C++ 的扩展和特性,而不是语言本身?

如果不建议在 VS 中学习,你们建议使用什么平台/IDE?

编辑:任何人都可以详细说明在编写非托管 C++ 时 VS 将为我隐藏或管理什么?我真的需要学习指针、垃圾收集和低级语言的所有细节。VS 是否对你抽象或隐藏了这些东西?

感谢所有的建议..

4

11 回答 11

14

Visual Studio(或免费版本 Visual C++ Express)是 Windows 上的完美选择。在 Linux 上,您可能最终会使用 GCC。两者都是很好的编译器。

Visual C++ 支持“真正的”本机 C++ 和 C++/CLI(托管的 .NET 版本),因此如果您想学习 C++,只需创建一个常规 C++ 项目即可。

如果您关心学习“正确的”标准 C++,请注意编译器默认启用许多 Microsoft 扩展,您可能希望禁用这些扩展。(项目属性 -> C/C++ -> 语言 -> 禁用语言扩展)。

作为记录,GCC 有类似的扩展(可以通过使用 --ansi 调用编译器来禁用),所以这不仅仅是微软大、邪恶和不标准。;)

于 2009-07-06T22:48:56.357 回答
8

Visual Studio 有一个非常好的调试器。它支持 STL 类型(2008 版更好),这将在调试时为您提供帮助。

Visual Studio 坚持使用您制作的第一个控制台项目(New->Project->Win32 Console Application)的 Microsoft 细节

// test123.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}

什么是 stdafx.h?_tmain 是什么?什么是_TCHAR?(顺便说一句,这里不需要回答)这些问题不应该出现在新手的脑海中。

这就是为什么我建议在 Win32 控制台应用程序项目中使用“空项目”复选框,然后从项目菜单中选择“添加新项目”,然后选择一个 cpp 文件,该文件将为您提供一个空白页面,您可以在其中实现您从不错的 C++ 书籍。

于 2009-07-07T05:33:33.507 回答
6

Visual Studio IDE 可用于多种语言:例如 C#、托管 C++,以及真正的(非托管)C++,因此:

  1. 您可以将 VS 用于真正的 C++,而不仅仅是用于“托管”C++。
  2. 如果您只想学习 C++,那么您是对的,您不想学习“托管”C++。
于 2009-07-06T22:20:29.253 回答
3

Visual Studio 不一定是托管的 C++。您可以使用该选项编译它,但这不是必需的。

在我看来,使用 Visual Studio 学习是一个不错的选择,因为您可以直接进入代码,而不必过多关注项目的配置。

于 2009-07-06T22:14:24.400 回答
3

这一切都取决于,第一步是阅读很多书籍,一些基础书籍,以及一些高级书籍,如有效的 C++。

托管 C++ 是与纯 C++ 完全不同的野兽,除了 VS 允许您使用纯 C++ 编程。因此,如果您的目标是学习纯 C++,我认为您不需要学习托管扩展。

您能否详细说明为什么您需要学习 C++?你将从事什么样的项目?

Visual Studio 及其智能感知和帮助是一个非常好的学习语言的平台。

于 2009-07-06T22:16:42.023 回答
3

Eclipse 是一个出色的 IDE,可与多种语言一起使用,包括 c++。Eclipse CDT 可以在这里找到:http: //www.eclipse.org/cdt/

于 2009-07-06T22:24:43.787 回答
2

我自己的经验:我第一次尝试编程是 VS 中的 C++。学习语法相对简单,但要掌握编译/链接/等。在我离开 IDE 之前更加痛苦。这些细节在很大程度上是为您管理/隐藏的。

话虽如此,如果您是一位经验丰富的程序员,特别是如果您的目标是在 VS 中使用 C++(例如,在工作或学校环境中),那么这是一个可行的快速入门选项。

于 2009-07-06T22:24:54.737 回答
0

对于 C++,我习惯了 Borland 编译器http://www.turboexplorer.com/。编译器之间的区别在于它们使用的库(dll 和包含,但其中一些是标准的)。我从 DevC++(一个免费的编译器http://www.bloodshed.net/devcpp.html)开始,我也喜欢它。语言是一样的。但最好的办法是尝试不同的编译器并使用你最喜欢的那个。

学习 C++ 的最佳方法是从控制台应用程序开始。

于 2009-07-06T22:25:04.923 回答
0

在托管 c++ 上引用MSDN :

创建 C++ 托管扩展是为了扩展 C++ 语言,允许您使用 .NET Framework 并以公共语言运行时为目标,而无需学习新的编程语言。

因此,“托管 C++”并不能帮助您学习 C++。此外,IMO 学习语言的最佳方式是学习其基础知识,而不是一些扩展。这与使用的编译器/IDE 无关。虽然 VS 可以使用简单的文本编辑器和任何命令行编译器(如g++ )提供很好的有用功能,但也非常好。

于 2009-07-06T22:28:27.100 回答
0

如果你只想学习普通的 C++ 和其他任何东西。我建议安装 cygwin 和 gcc/g++。我推荐 cygwin 的原因是你似乎在使用 windows 的问题。否则,如果您使用的是 *nix 类型系统,您应该已经拥有 gcc。

您需要做的就是在您喜欢的编辑器中创建您的 c++ 文件并进行编译。您仍然需要学习如何使用 gcc 并可能制作文件(特别是如果您正在制作一个不平凡的项目),但这可能是您学习 C++ 的最低限度的设置。

于 2009-07-06T22:30:17.783 回答
0

我需要快速掌握 C++(我以前从未使用过它)——通过 Visual Studio(即托管 C++)学习会有用吗?还是我最终会在 VS 中学习 C++ 的扩展和特性,而不是语言本身?

您不应混淆托管 C++ 和 VS。即使在 Visual Studio 中,您也可以编写非托管(真正的)C++。Visual Studio 只是一个 IDE。

如果不建议在 VS 中学习,你们建议使用什么平台/IDE? 编辑:任何人都可以详细说明在编写非托管 C++ 时 VS 将为我隐藏或管理什么?我真的需要学习指针、垃圾收集和低级语言的所有细节。VS 是否对你抽象或隐藏了这些东西?

VS 像任何其他 IDE 一样会对您隐藏诸如编译和链接阶段之类的内容。但它不会对您隐藏任何语言功能。是的,您可以使用 VS 学习指针和其他低级内容。非托管 C++ 不支持垃圾回收。但如果你是初学者并且不着急,那么最好的方法是带一个文本编辑器、一个编译器和一个调试器和代码。g++、gdb 和 emacs/vi 对于初学者来说将是 VS 的更好替代品。您将真正感受到事物是如何编译、链接并最终生成二进制文件的。但这需要时间,并且可能需要指导才能使用这些工具。使用 VS,您可以在几分钟内起床。如果您的目标是学习 C++ 语言语法和功能,那么请继续在 VS 和代码中创建一个新的空 VC++ 项目。

于 2009-07-07T09:22:09.597 回答