1

私が最後に C++ を多用したのは何年も前のことで、厳密には Windows プラットフォーム上で行われていました。具体的には、Microsoft Visual Studio を IDE として使用し、Microsoft の C++ バージョンを使用するいくつかの習慣的なパターンを開発しました。たとえば、標準のint main( ) の代わりにvoid main()を使用しました。

現在、ANSI C++ 準拠のプログラムを開発する必要があり、コードは g++ を使用してコンパイルされるクラスを受講しています。システム ( "PAUSE" )は g++ では機能せず、おそらく Microsoft のものであることをすぐに知りました。

ANSI C++ に準拠するためにさらに何を学ぶことができる良いリソース (サイト、チュートリアル、本) を知っている人はいますか?

ありがとうございました。

4

9 に答える 9

2

g++ を使用している場合は、-pedantic および -std=c++98 フラグを使用してコンパイルします。ANSI C++ の唯一の標準は実際には ISO 標準ドキュメントであり、初心者にはお勧めできません。ところで、あなたは system("PAUSE") について誤解しています - system() は ANSI C++ の一部です - ただし、そのパラメータは標準化されていません。

于 2010-01-16T18:05:45.757 に答える
1

多くのgccファン。

可能な限り厳密にするために Visual Studio でコンパイルする重要なフラグは次のとおりです。

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

/Za は Microsoft 固有の拡張機能を無効にし、/W4 は最高の警告レベルです (おかしなことに文句を言う /Wall を除く)。

また、最新バージョンの Visual Studio を使用することをお勧めします。古いバージョン (VC6) はばかばかしいほど非準拠であり、Microsoft は公式に、現時点では存在しないふりをしています。

于 2010-01-16T19:37:34.500 に答える
1

ほとんどの C++ の書籍は、プラットフォームに依存しません (もちろん、Visual C++ 専用に作成されている場合を除きます)。##C++ のプロが推奨する良書をいくつか紹介します。

于 2010-01-16T18:06:40.887 に答える
1

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 について言及

于 2010-01-16T18:07:03.203 に答える
1

GCC は、コードが ISO C++ に準拠していない場合 (ISO 標準でも ANSI 標準でもない) を適切に通知します。警告オプション -Werror -Wall を設定し、単純にすべての警告を修正します。コンプライアンス違反の習慣からすぐに抜け出し、警告がますます少なくなります。

于 2010-01-16T18:17:44.620 に答える
0

私がお勧めします。

ウェブサイト:

書籍:

  • 効果的な C++
  • 実効stl
  • 最新の C++ 設計
  • テンプレートのメタプログラミング

専門家と話したり聞いたりして、彼らが何を言わなければならないのか、そしてその理由を理解する.

于 2010-01-16T20:27:53.650 に答える
0

C++ Primer (第 4 版) は、最新のアプローチを採用し、言語のすべての重要な部分を教えているため、最近では最高の初心者向け書籍のようです。Accelerated C++ は、専門家によってよく推奨されるもう 1 つの本であり、優れた入門書として役立ちますが、C++ Primer が適切に置き換えられ、言語をより適切にカバーするため、もう購入することはお勧めしません。

注: C++ Primer Plus (かなり悪い本です) は、C++ Primer とは何の関係もありません。

もちろん、Stroustrup の The C++ Programming Language については常に言及する必要があります。なぜなら、それは言語の父によって書かれているからです。多くの人はそれが啓発的であると感じていますが、個人的には言語の学習にはお勧めしません.

私が言及したすべての本は、ISO 標準のみを説明しており、非標準の拡張機能はありません。これらの本のプログラムは、どの C++ コンパイラでも動作するはずです。

于 2010-01-16T20:39:00.473 に答える
0

特に標準 C++ ライブラリについて疑問があるときはいつでも、www.cplusplus.com にアクセスするのが好きです。

于 2010-01-17T00:21:05.753 に答える
0

次の 2 つを強くお勧めします。

  • comp.lang.c++ Usenet ニュースグループ。優れた Usenet サービス プロバイダーを見つけて、ニュース リーダーを使用できれば、スパムを取り除くことができるはずです。私はever-september.orgを使用していますが、とても気に入っています。
  • C++ FAQを読んでください。それは多くの素晴らしい情報を持っています。

確かに、C++ のチュートリアルの紹介が必要な場合は、どちらもそれほど優れているわけではありませんが、すでに C++ をある程度知っているようで、さらに学習し、悪い習慣を修正する必要があるようです。私の個人的な経験から、上記の 2 つはまさにそれを行うのに非常に役立ちます。

についてcomp.lang.c++は、FAQ をよく読み、投稿する前にしばらくそこに潜んでいることを確認してください。もちろん、同じことがスタックオーバーフローにも当てはまりますが、ここでは潜んでいる必要はないかもしれません。

を使用g++してプログラムをコンパイルし、g++ -ansi -pedantic -Wall -Wextra -Weffc++すべての警告を理解していることを確認してください。私が使う:

g++ -Wextra -Wall -Weffc++ -ansi -pedantic -Woverloaded-virtual \
-Wcast-align -Wpointer-arith
于 2010-01-16T18:09:02.207 に答える