我上次大量使用 C++ 是几年前的事了,而且是严格在 Windows 平台上完成的。具体来说,我使用 Microsoft Visual Studio 作为我的 IDE,并开发了一些习惯模式来使用 Microsoft 的 C++ 版本。例如,我用过 无效主() 而不是标准 int main().

现在,我正在上一门课程,要求开发符合 ANSI C++ 的程序,并且代码将使用 g++ 进行编译。我很快了解到 系统(“暂停”) 在 g++ 中不起作用,可能是 Microsoft 的事情。

有谁知道有什么好的资源(网站、教程、书籍),我可以在其中学习更多更好的 ANSI C++ 投诉吗?

谢谢。

有帮助吗?

解决方案

我强烈推荐这两个:

  • comp.lang.c++ Usenet 新闻组。如果您能找到一个好的 Usenet 服务提供商,并使用新闻阅读器,您应该能够摆脱垃圾邮件。我用 永恒九月.org, ,并且非常喜欢。
  • 阅读 C++ 常见问题解答. 。它有很多重要的信息。

当然,如果您想要 C++ 的教程介绍,那么它们都不是很好,但看起来您已经了解了一些 C++,并且需要学习更多内容并纠正坏习惯。根据我个人的经验,上述两个方法对于做到这一点非常有用。

关于 comp.lang.c++, ,请确保您完全阅读了他们的常见问题解答,并在发布之前在那里潜伏了一段时间。当然,这同样适用于 stackoverflow,尽管这里可能不需要潜伏。

使用 g++, ,编译你的程序 g++ -ansi -pedantic -Wall -Wextra -Weffc++, ,并确保您理解所有警告。我用:

g++ -Wextra -Wall -Weffc++ -ansi -pedantic -Woverloaded-virtual \
-Wcast-align -Wpointer-arith

其他提示

如果使用的是克++,然后与-pedantic和-std = C ++ 98个标志编译。对于ANSI C ++的唯一标准是真正的ISO标准的文件,这是不能被推荐给初学者。你错了有关系统(“暂停”),顺便 - 系统()是ANSI C ++部分 - 它的参数不规范,但是

大多数C ++书籍将是与平台无关的(当然,除非它们为Visual C专门制成++)。这里有一些 由在##的利弊推荐好书C ++

当你的代码是GCC会做,告诉你一个好工作不ISO C ++标准(并不在于它是一个ISO标准,而不是ANSI标准)。设置警告选项-Wall -Werror,并简单地修复所有警告;你很快就会出来的不符合标准的习惯和蒙古包越来越少的警告。

有很多好的教程的gcc,有一个标志,将确保代码是ANSI C标准也gcc -ansi -Wall -fsyntax-only -pedantic

* Wall - turn on all errors
* ansi - use strict ANSI C specification
* fsyntax-only - only checks syntax
* pedantic - reject violations

每评论此外,还可以使用     * -Wextra开启一些额外的警告,

更新感谢上的大写字母。更新和的-pedantic提

的GCC风扇很多。

与编译的Visual Studio下是尽可能严格的重要标志是:

cl /Za /W4 ...rest of command...

/杂禁用微软特定的扩展和/ W4是最高报警水平(除了/墙,其抱怨荒谬的东西)。

我也建议你使用Visual Studio的现代版本 - 旧版本(VC6)是可笑的不符合标准的,和微软正式假装他们从来没有在这一点上存在

我会推荐。

网站:

图书:

  • 有效的C++
  • 有效的STL
  • 现代C++设计
  • 模板元编程

与专家交谈/倾听,了解他们的意见和原因。

C ++入门(第四版)似乎是最好的入门书,这些天,因为它需要一个现代的方法,并教所有语言的重要组成部分。加速C ++往往是由专业人士推荐的另一本书,它可以作为一个很好的介绍,但我不建议买它了,因为C ++入门很好地取代了它,并涵盖了语言更好。

请注意:C ++的Primer Plus(这是一个相当不错的书)无关,与C ++入门

Stroustrup的C ++编程语言总是需要被提及,当然,因为它是由语言的父亲写的。很多人觉得有启发,但我个人不会推荐它为学习语言。

所有的书我提到仅描述与没有非标准扩展ISO标准。这些书籍中的方案应当与任何C ++编译器的工作。

我喜欢来访www.cplusplus.com每当我有个疑问,特别关于标准C ++库。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top