CおよびC++言語を学ぶ方法:究極のリスト
公開: 2022-03-11Cプログラミング言語は、もともとDennis RitchieによってUNIXオペレーティングシステム用に開発され、実装されました。 非常に単純なC言語は、特定のハードウェアやシステムに関連付けられていません。 これにより、ユーザーは、実質的にすべてのマシンで多くの(またはまったく)変更を加えずに実行できるプログラムを簡単に作成できます。
C言語は、高級言語の要素とアセンブリ言語の機能性を組み合わせているため、しばしば中級コンピューター言語と呼ばれます。 Cプログラミングを使用すると、ビット、バイト、およびアドレスを操作できます。これにより、プログラマーはプログラムの動作を正確に制御し、基盤となるハードウェアの仕組みに直接アクセスできます。
Cは、作業中のプログラマーによって作成され、影響を受け、フィールドテストされました。 最終結果は、Cがプログラマーにプログラマーが望むものを与えるということです。
C ++は、C言語の拡張バージョンです。 C ++には、Cの一部であるすべてのものが含まれており、オブジェクト指向プログラミング(OOP)のサポートが追加されています。 さらに、C ++には、オブジェクト指向プログラミングとは関係なく、「より優れたC」にするための多くの改善と機能も含まれています。
C ++言語は、標準言語の一部である事前定義された型と同じように機能するように新しい型を定義できるため、実際には拡張可能です。
C ++をより優れたCとして使用するだけでは、そのすべての機能を使用することはできません。 他の高品質ツールと同様に、C ++は、その豊富さを活用するために使用するように設計された方法で使用する必要があります。 新機能には、カプセル化、インライン関数呼び出し、オーバーロード演算子、継承、およびポリモーフィズムが含まれます。
なぜCまたはC++を学びたいのですか?
CとC++は、今でも最も人気のあるプログラミング言語の2つです。 特にCの構文と概念は時の試練に耐え、Goなどの最新のプログラミング言語でさえも他の一般的なプログラミング言語に引き継がれているのを見ることができます。
残りの人生でWebアプリケーションや豪華なWebフロントエンドコンポーネントを構築する場合でも、Cを学習すると、ソフトウェアとハードウェアが実際にどのように相互作用するかを理解するのに役立ちます。
その上、CとC++はいたるところにあります。
特にCは、私たちが認めているよりもはるかに多くのテクノロジーに力を与えています。
一方、お気に入りのソフトウェアのいくつか(おそらく、この記事を読んでいるWebブラウザーでさえ)はC++で構築されています。 Cを知ることは良い基盤ですが、多くの場合、ソフトウェア開発ではC++とそのパラダイムを学ぶ必要があります。
コンピューターのパフォーマンスと機能を最大限に活用する必要のあるソフトウェア(ハイエンドのデスクトップゲーム、高度な生産性ツール、複雑な計算集約型プログラムなど)を開発したい場合、または単に次のことを可能にするプログラミング言語が必要な場合コンピューターのハードウェアと直接対話します。CおよびC++が言語です。
では、なぜC ++やCを学びたくないのでしょうか? 25年前とは異なり、プロプライエタリコンパイラに投資して開始する必要があったかもしれません。今日では、C++を無料で学ぶことができます。
CおよびC++の使用を開始するにはどうすればよいですか?
CまたはC++の使用を開始するには、ほとんどの場合、少なくともコンパイラーが必要です。ただし、最近では、ブラウザーで「HelloWorld」Cプロジェクトを少し試してCをオンラインで学習することもできます。
コンパイラは、コマンドラインインターフェイス(CLI)を介して実行できるプログラムです。 彼らはプログラム全体を読み取り、それをオブジェクトコードに変換します。これは、プログラムのソースコードをコンピューターが直接実行できる形式に変換したものです。
生活を楽にするために、CまたはC++のエクスペリエンスをさらに快適にする本格的なIDEを選択できます。
ウィンドウズ
Windowsで利用できる優れたコンパイラはたくさんあります。
Windowsでは、VisualStudioはC++コンパイラを提供します。
コンパイラはCプログラムをビルドすることもできます。
Visual Studioには、独自の強力で機能豊富なIDEが付属しているため、CまたはC ++を使い始めた人、または主にWindowsプラットフォームを対象としている人に最適です。
より標準に準拠したものを探している場合は、GCC(MinGW)が必要な場合があります。 Codeblocks IDEは、このセットアップで非常にうまく機能します。
Clangも、今ではWindowsで手ごわい選択肢になっています。最近では、GoogleChromeの構築にも使用されています。
Eclipse CDT、Jetbrains CLion、Netbeansなど、完全に機能するCおよびC++開発環境を提供する他のクロスプラットフォームIDEが存在します。 ただし、最近、これらはVisual Studio Codeによって隠されています(皮肉なことにご容赦ください)。これは、LinuxおよびMac環境でも利用できます。
Linux
Linuxを使用している場合は、ディストリビューションの一部としてGCCがすでにインストールされている可能性があります。 そうでない場合は、インストールは1つのコマンドの問題である必要があります。
# Ubuntu sudo apt-get install build-essential # Fedora sudo yum install gcc gcc-c++ # Arch Linux sudo pacman -S base-devel
CodeblocksIDEとEclipseCDTは、Windowsと同様にLinuxでも同様に機能します。
Mac / Mac OS X / OS X / macOS
Macでは、ClangまたはGCCを使用できます。どちらも無料で利用できます。 GCCはより広範囲のCおよびC++標準をサポートしていますが、Clangはほとんどの場合正常に機能します。
Clangはすでにインストールされているはずです。
Homebrewを使用してGCCをインストールできます。
brew install gcc
MacOS開発者ツールの一部である優れたIDEであるXCodeを使用できます。
CとC++を学ぶための良いチュートリアルは何ですか?
チュートリアルは、新しいプログラミング言語を使い始めるのに最適な方法です。 プログラミング自体にあまり詳しくない場合でも。 次のチュートリアルでは、最も重要な概念について説明します。
LearnVernでのCプログラミング
この包括的なCプログラミングオンラインコースは、必ずしも以前のプログラミング経験がない初心者に最適です。 これは、Cとプログラミング全般の非常に基本的なことから始まり、動的メモリ割り当て、ファイル管理などの高度なトピックをカバーしています。
CourseraのCプログラマー向けC++
すでにCに精通していて、C ++に足を踏み入れたい場合は、この2部構成のコースが最適です。 このコースでは、これら2つの言語の違いを真に強調し、C++を最大限に活用する方法を示します。
PluralsightでのC++の基礎
一方、C ++の基本から始めて、ゼロから学びたい場合は、PluralSightにチュートリアルが用意されています。 これは、C++をより効率的に使用したい人を対象としています。
Udemyの初心者のためのCプログラミング
このCプログラミングオンラインコースは初心者向けで、3つの人気のあるプラットフォーム(Windows、Linux、Mac OS X)のいずれかでCを使い始めたい人に最適です。

Udemyの完全な初心者のためのC++チュートリアル
このコースは、基本的なコンピューターの知識を持っているが、プログラミングの分野に入りたいと思っている人を対象としています。 間違いなく、それはあなたの第一言語としてC++を学ぶための最良の方法です。 また、ゲーム開発がおもしろいと思ったら、これがあなたが始めたいコースです。
Udemyでの高度なC++プログラミングトレーニングコース
基本的なC++プログラミングスキルに満足し、実際の取引に進む準備ができたら、このような高度なチュートリアルが必要になります。 チュートリアルでは、ポリモーフィズム、テンプレート、例外処理、ストリーム、コンテナー、アルゴリズム、スタックなどについて説明します。
comp.lang.cよくある質問
必要なのは、問題に対処するためにすばやく調べることができる質問と回答の豊富なリストだけである場合があります。 これはそれ自体がチュートリアルではなく、よくある質問の構造化されたセットです。
FrankBrokkenによるC++アノテーション(バージョン10.9.2)
このWebベースのチュートリアルは、C ++への移行を希望する上級Cプログラマー(またはPerlまたはJavaプログラマー-「Cのような文法」を持っていると見なされるもの)を対象としています。 ポインタ、メモリ割り当て、複合型など、Cプログラミング言語が終了するところまで続きます。これにより、非常に優れたC++プログラミングガイドになります。
GoogleC++スタイルガイド
C ++プログラミングを学びながら、より複雑なプログラムを作成すると、保守性の問題にすぐに遭遇する可能性があります。 ここで、ベテランのC++プログラマーによるスタイルガイドが役に立ちます。 このスタイルガイドはGoogleによって管理されています。
上記のC/C ++チュートリアルでは不十分な場合は、Cを学習するためおよびC++を学習するためのチュートリアルのコミュニティモデレートされた優れたリストがあります。
本を読んでCとC++を学ぶことはできますか?
本はプログラミング言語について深く学ぶための素晴らしい方法です。 プログラミング言語の複雑な機能がどのように機能するかについての多くの優れた説明により、CまたはC ++に関する優れた本からの知識は、プロジェクトでこれらの言語を使用する際の上限を与えることができます。
C in a Nutshell:The Definitive Reference(2nd Edition)by Peter Prinz and Tony Crawford
この本にはCプログラミング言語の簡単な紹介が含まれていますが、Cのコーディングを学びたい場合は、2冊目の本として適しています。この本は、上級開発者が最大限に活用できるようにするためのヒント、テクニック、例、実践的なアドバイスを提供します。機能。
この本は3部に分かれています。
1つ目は、厳密な意味でのC言語について説明しています。 2つ目は標準ライブラリについて説明し、3つ目は人気のあるGNUソフトウェアコレクションのツールを使用してプログラムをコンパイルおよびテストするプロセスについて説明します。
C in a Nutshellは、Brian W. Kernighan&Dennis Ritchie(K&Rとも呼ばれます)によるCプログラミング言語の完璧なコンパニオンであり、机の上で最も手が届く参考書になる運命にあります。
ブライアン・W・カーニハンとデニス・リッチーによるCプログラミング言語
これは、元のKernighan&Ritchieテキストの第2版です。
初版の性質を維持しながら、ANSI規格によって組み込まれた変更が含まれているため、一般に新約聖書と呼ばれます。
この本は、読者がプログラミングの基本的な知識を持っていることを前提としています。 したがって、プログラミングを始めたばかりで、Cが第一言語である場合、これはあなたにとって理想的な本ではないかもしれません。 ただし、これらの要約されたメモは価値があると思うかもしれません。
これは、Cプログラミングを紹介するための最良の方法のひとつであり、特にプログラミングの本の独自のコレクションを開始する場合は必須です。
BjarneStroustrupによるC++プログラミング言語(第4版)
BjarneStroustrupはC++の設計者であり、このトピックに関する多くの優れた本を書いています。
この本は3部に分かれています。
最初の部分では、C++プログラミングのチュートリアルを紹介します。
第2部では、C ++の使用に関連して発生する設計とソフトウェア開発の問題について説明し、第3部では完全なリファレンスマニュアルを示します。
C ++の人気に伴い、C ++のいくつかの独立したディストリビューターが登場しましたが、この本では「純粋なC++」について説明しています。 つまり、実装に依存する拡張機能は使用されません。
プログラミング言語を学ぶための最良の方法の1つは、勉強する項目に関連する小さなプログラムを書くことです。 各章の終わりには、新しく学んだ知識を適用するための演習があります。
効果的なC++:ScottMeyersによるプログラムとデザインを改善する55の具体的な方法
C ++を使用して大規模なソフトウェアを構築するには、設計と規律が必要です。 C ++を真剣に考えているなら、この本は必読です。
これは、効果的なクラス、関数、テンプレート、および継承階層を設計するためのエキスパートガイドです。 この本では、C ++が他の言語とどのように異なるか、および「C++の方法」で物事を行う方法についても説明しています。
スタンレーB.リップマンによるC++入門書(第5版)
C ++入門書は素晴らしい本であり、C++の学習を楽しくします。 これは、実際には最高のC ++ブックのひとつですが、プログラミングの概念に精通し、Cに習熟していることを前提としています。
この本の最新版は、新機能や高度な機能を最大限に活用したいプログラマーに最適です。
マーシャルP.クラインによるC++FAQ(第2版)
これは、プログラミング、設計、分析、およびテストに関する約500の質問に対する回答が含まれている驚異的な本です。 初心者向けではありませんが、言語の構文を理解したプログラマーが実装したいと考えています。
「クラス不変とは何ですか?」、「例外をどのように使用すればよいですか?」、「デストラクタが実行されるとどうなりますか?」などの質問がある場合は、これがあなたのための本です。
効果的な最新のC++:ScottMeyersによるC++11およびC++14の使用を改善する42の特定の方法
すでにC++の経験があるが、C ++の最新の標準を試してみたい場合は、この本を読んでください。 これらの新しい標準を通じてC++がどれだけ進化したかに驚かれることでしょう。 この本では、C++の新しい機能を最も効果的に使用する方法について説明しています。 (C++標準は現在C++ 17までですが、C ++ 14はまだ多くのプロジェクトコンテキストで最先端です。)
効果的なSTL:ScottMeyersによる標準テンプレートライブラリの使用を改善するための50の特定の方法
C ++の最も驚くべき側面の1つは、その標準テンプレートライブラリ(STL)です。 これは最も強力な機能の1つですが、非常に複雑になる可能性があります。 この本は、STLのさまざまな領域を探索する50のすばらしいヒントと100以上のSTLアルゴリズムを提供し、C++を使い始めたばかりの開発者にとってより親しみやすいものにします。