人気ジャーニー
C++を学ぶ
無料で使える、インタラクティブなオンラインC++講座。各レッスンで実際にC++を書きながら、基礎、ポインタ、クラス、テンプレートまで学べます。コンパイラに怒られたときはAIヒントが助けてくれて、修了すれば無料の修了証ももらえます。
211,803+ 人のcoddersが登録中
- 初心者向け
AIによるコーディングサポート
実践的なインタラクティブレッスン
全レッスンに音声ナレーション付き
知識を確かめるクイズ
無料の修了証明書
シラバス
セクション 1
基礎
セクションを始める開始開く閉じる必須の概念と基本スキルで強固な基礎を築きましょうはじめに
4 レッスン325- 01C++チャレンジ
- 02Hello World!チャレンジクイズ
- 03コメントクイズ
- 04プログラムの基本構造チャレンジクイズ
変数 パート1
6 レッスン846- 01整数チャレンジマスタリークイズ
- 02実数チャレンジマスタリークイズ
- 03文字列チャレンジクイズ
- 04真偽値チャレンジクイズ
- 05文字チャレンジクイズ
- 06定数チャレンジクイズ
変数 パート2
5 レッスン334- 01型宣言チャレンジクイズ
- 02命名規則クイズ
- 03復習 - 変数の初期化チャレンジ
- 04型変換 パート1チャレンジクイズ
- 05型変換 パート2クイズ
演算子 パート1
7 レッスン654- 01算術演算子チャレンジクイズ
- 02剰余演算子チャレンジクイズ
- 03インクリメント・デクリメントチャレンジクイズ
- 04後置インクリメント・デクリメントチャレンジクイズ
- 05算術演算の短縮表記チャレンジクイズ
- 06比較演算子チャレンジクイズ
- 07文字列の比較クイズ
演算子 パート2
4 レッスン423- 01論理演算子 パート1チャレンジクイズ
- 02論理演算子 パート2チャレンジクイズ
- 03復習 - 単純な論理チャレンジ
- 04論理演算子 パート3チャレンジクイズ
条件分岐
6 レッスン637- 01if 文チャレンジクイズ
- 02if - else 文チャレンジクイズ
- 03switch 文チャレンジクイズ
- 04条件演算子チャレンジクイズ
- 05if - else の復習チャレンジ
- 06ネストした if - elseチャレンジクイズ
入出力の基本
5 レッスン524- 01cout 文チャレンジマスタリークイズ
- 02cin 文チャレンジクイズ
- 03文字列の入力クイズ
- 04復習 - 120までチャレンジ
- 05復習 - True or Falseチャレンジ
数値計算機
プロジェクト4 レッスン16- 01ウェルカムメッセージチャレンジクイズ
- 02数値の取得プロジェクト
- 03基本的な演算プロジェクト
- 04書式設定された出力プロジェクト
ループ
9 レッスン760- 01For ループ (パート1)チャレンジクイズ
- 02While ループチャレンジクイズ
- 03Do While ループチャレンジクイズ
- 04Breakチャレンジクイズ
- 05Continueチャレンジクイズ
- 06For ループ (パート2)クイズ
- 07ネストされたループチャレンジクイズ
- 08無限ループクイズ
- 09復習 - 動的入力チャレンジ
関数
7 レッスン739- 01関数の宣言チャレンジクイズ
- 02引数チャレンジマスタリークイズ
- 03戻り値の型チャレンジクイズ
- 04関数のオーバーロードクイズ
- 05復習:シグマ関数チャレンジ
- 06復習:バリデーション関数チャレンジ
- 07Void 関数チャレンジクイズ
配列の基礎
9 レッスン848- 01配列の宣言チャレンジクイズ
- 02要素へのアクセスチャレンジクイズ
- 03要素の変更チャレンジクイズ
- 04復習 - 配列の整形出力チャレンジ
- 05配列と関数クイズ
- 06復習 - 配列の積チャレンジ
- 07復習 - 配列の反転チャレンジ
- 08拡張 for ループチャレンジクイズ
- 09配列の一般的な操作チャレンジクイズ
文字列
5 レッスン441- 01Cスタイル文字列 パート1チャレンジクイズ
- 02Cスタイル文字列 パート2クイズ
- 03文字列操作チャレンジクイズ
- 04文字列関数 パート1チャレンジクイズ
- 05文字列関数 パート2チャレンジクイズ
最終チャレンジ
3 レッスン37- 01数値のパターンチャレンジクイズ
- 02パターン検索チャレンジ
- 03成績計算プログラムチャレンジ
セクション 2
論理と制御フロー
セクションを始める開始開く閉じる問題解決スキルを養い、動的でインタラクティブなプログラムを作成しましょうポインタとメモリ
8 レッスン757- 01ポインタとは?クイズ
- 02アドレス演算子チャレンジクイズ
- 03間接参照演算子チャレンジクイズ
- 04ヌルポインタチャレンジクイズ
- 05ポインタと配列チャレンジクイズ
- 06'new' による動的メモリ確保チャレンジクイズ
- 07'delete' によるメモリの解放チャレンジクイズ
- 08まとめ:ポインタの演習チャレンジ
ベクタ (動的配列)
9 レッスン861- 01std::vector の紹介クイズ
- 02ベクタの作成チャレンジクイズ
- 03要素の追加チャレンジクイズ
- 04要素へのアクセスチャレンジクイズ
- 05ベクタのサイズチャレンジクイズ
- 06for ループによる反復処理チャレンジクイズ
- 07範囲ベース for ループチャレンジクイズ
- 08要素の削除チャレンジクイズ
- 09まとめ:ベクタの操作チャレンジ
プロジェクト:タスクリストツール
プロジェクト5 レッスン1- 01プロジェクトの概要チャレンジ
- 02タスクの追加プロジェクト
- 03タスクの表示プロジェクト
- 04タスクの削除プロジェクト
- 05ツールの仕上げプロジェクト
マップ (キーと値のペア)
7 レッスン644- 01std::map の紹介クイズ
- 02マップの作成チャレンジクイズ
- 03値のアクセスと変更チャレンジクイズ
- 04キーの存在確認チャレンジクイズ
- 05ペアの削除チャレンジクイズ
- 06マップの反復処理チャレンジクイズ
- 07まとめ:単語の出現頻度チャレンジ
プロジェクト:在庫管理ツール
プロジェクト5 レッスン1- 01プロジェクトのセットアップチャレンジ
- 02アイテムの追加と更新プロジェクト
- 03在庫の確認プロジェクト
- 04在庫の削除プロジェクト
- 05在庫レポートの出力プロジェクト
セット (重複のない要素)
6 レッスン538- 01std::set の紹介クイズ
- 02セットの作成と要素の追加チャレンジクイズ
- 03要素の存在確認チャレンジクイズ
- 04要素の削除チャレンジクイズ
- 05セットの反復処理チャレンジクイズ
- 06まとめ:重複のない数値チャレンジ
高度な関数
7 レッスン653- 01参照渡しチャレンジクイズ
- 02ラムダ式入門チャレンジクイズ
- 03引数を持つラムダ式チャレンジクイズ
- 04戻り値を持つラムダ式チャレンジクイズ
- 05再帰入門クイズ
- 06再帰による階乗チャレンジクイズ
- 07ラムダ式によるソートチャレンジクイズ
エラーハンドリングの基本
6 レッスン540- 01例外の概要クイズ
- 02'try' と 'catch' ブロックチャレンジクイズ
- 03'throw' キーワードチャレンジクイズ
- 04さまざまな例外の種類チャレンジクイズ
- 05キャッチオールハンドラチャレンジクイズ
- 06まとめ:安全な割り算チャレンジ
最終チャレンジ
3 レッスン3- 01Vectorデータのフィルタリングチャレンジ
- 02Mapの値の検索チャレンジ
- 03ポインタと動的配列チャレンジ
セクション 3
オブジェクト指向プログラミング
セクションを始める開始開く閉じるクラス、オブジェクト、再利用可能な構造を使ってコードを整理する方法を学びましょうOOPの基礎
11 レッスン1187- 01外部ファイルチャレンジクイズ
- 02C++ のビルドとコンパイルチャレンジクイズ
- 03ヘッダーファイルとソースファイルチャレンジクイズ
- 04名前空間とスコープチャレンジクイズ
- 05C++ における OOP 入門チャレンジクイズ
- 06クラスとオブジェクトチャレンジクイズ
- 07'this' ポインタチャレンジクイズ
- 08メソッド (メンバ関数)チャレンジクイズ
- 09属性 (データメンバ)チャレンジクイズ
- 10コンストラクタとデストラクタの基礎チャレンジクイズ
- 11復習:簡易電卓チャレンジ
メモリ管理
6 レッスン644- 01スタック vs ヒープメモリチャレンジクイズ
- 02ポインタと参照チャレンジクイズ
- 03動的メモリ (new/delete)チャレンジクイズ
- 04C++ のスマートポインタチャレンジクイズ
- 05C++ における RAIIチャレンジクイズ
- 06まとめ:動的配列マネージャーチャレンジ
コンストラクタとデストラクタ
9 レッスン972- 01デフォルトコンストラクタチャレンジクイズ
- 02引数付きコンストラクタチャレンジクイズ
- 03コピーコンストラクタチャレンジクイズ
- 04ムーブコンストラクタチャレンジクイズ
- 05コンストラクタ初期化リストチャレンジクイズ
- 06委譲コンストラクタチャレンジクイズ
- 07デストラクタ詳解チャレンジクイズ
- 08Rule of Three / Five / Zeroチャレンジクイズ
- 09まとめ - Stringクラスチャレンジ
クラスのプロパティ
7 レッスン753- 01インスタンスメンバと静的メンバチャレンジクイズ
- 02ゲッターとセッターチャレンジクイズ
- 03const メンバ関数チャレンジクイズ
- 04mutable キーワードチャレンジクイズ
- 05静的メソッドと変数チャレンジクイズ
- 06フレンド関数とクラスチャレンジクイズ
- 07まとめ:銀行口座マネージャーチャレンジ
カプセル化
6 レッスン651- 01C++ のアクセス修飾子チャレンジクイズ
- 02アクセス修飾子の詳細チャレンジクイズ
- 03情報隠蔽チャレンジクイズ
- 04Struct と Classチャレンジクイズ
- 05ネストしたクラスと内部クラスチャレンジクイズ
- 06まとめ:学生記録システムチャレンジクイズ
演算子オーバーロード
8 レッスン863- 01演算子オーバーロード入門チャレンジクイズ
- 02算術演算子のオーバーロードチャレンジクイズ
- 03比較演算子のオーバーロードチャレンジクイズ
- 04ストリーム演算子チャレンジクイズ
- 05代入演算子のオーバーロードチャレンジクイズ
- 06[] と () 演算子のオーバーロードチャレンジクイズ
- 07型変換演算子チャレンジクイズ
- 08まとめ:Matrix クラスチャレンジ
継承
8 レッスン862- 01継承の基本チャレンジクイズ
- 02継承のアクセスレベルチャレンジクイズ
- 03コンストラクタとデストラクタの呼び出し順序チャレンジクイズ
- 04メソッドのオーバーライドチャレンジクイズ
- 05仮想関数とVTableチャレンジクイズ
- 06多重継承チャレンジクイズ
- 07仮想継承チャレンジクイズ
- 08まとめ:従業員の階層構造チャレンジ
ポリモーフィズム
8 レッスン860- 01コンパイル時 vs 実行時ポリモーフィズムチャレンジクイズ
- 02関数オーバーロードチャレンジクイズ
- 03仮想関数の再考チャレンジクイズ
- 04純粋仮想関数チャレンジクイズ
- 05抽象クラスチャレンジクイズ
- 06C++におけるインターフェース設計チャレンジクイズ
- 07Dynamic Casting & RTTIチャレンジクイズ
- 08まとめ:図形計算機チャレンジ
テンプレート
6 レッスン546- 01関数テンプレートチャレンジクイズ
- 02クラステンプレートチャレンジクイズ
- 03テンプレートの特殊化チャレンジクイズ
- 04可変引数テンプレートチャレンジクイズ
- 05SFINAE と Type Traits の基礎クイズ
- 06まとめ:ジェネリックコンテナチャレンジ
STLの概要
6 レッスン646- 01STLの概要と設計思想チャレンジクイズ
- 02STLコンテナチャレンジクイズ
- 03イテレータチャレンジクイズ
- 04STLアルゴリズムチャレンジクイズ
- 05関数オブジェクトとラムダ式チャレンジクイズ
- 06復習:単語の出現頻度チャレンジ
高度なOOPの概念
7 レッスン763- 01コンポジション vs 継承チャレンジクイズ
- 02CRTPによるミックスインチャレンジクイズ
- 03Pimplイディオムチャレンジクイズ
- 04型消去チャレンジクイズ
- 05Enumクラスと強い型付けチャレンジクイズ
- 06OOPにおける例外処理チャレンジクイズ
- 07カスタム例外階層チャレンジクイズ
モダンC++の機能
7 レッスン764- 01ムーブセマンティクスと右辺値チャレンジクイズ
- 02完全転送チャレンジクイズ
- 03ラムダ式の詳細チャレンジクイズ
- 04std::functionとstd::bindチャレンジクイズ
- 05constexprとconstevalチャレンジクイズ
- 06構造化束縛チャレンジクイズ
- 07optional, variant, anyチャレンジクイズ
デザインパターン パート1
6 レッスン655- 01デザインパターン入門チャレンジクイズ
- 02シングルトンパターンチャレンジクイズ
- 03ファクトリ & アブストラクトファクトリチャレンジクイズ
- 04ビルダーパターンチャレンジクイズ
- 05オブザーバーパターンチャレンジクイズ
- 06ストラテジーパターンチャレンジクイズ
デザインパターン パート2
7 レッスン764- 01コマンドパターンチャレンジクイズ
- 02アダプターパターンチャレンジクイズ
- 03デコレーターパターンチャレンジクイズ
- 04テンプレートメソッドパターンチャレンジクイズ
- 05ステートパターンチャレンジクイズ
- 06コンポジットパターンチャレンジクイズ
- 07パターンとしてのRAIIチャレンジクイズ
最終課題
2 レッスン2- 01Eラーニングプラットフォームチャレンジ
- 02銀行システムチャレンジ
CoddyでC++を学ぶ理由
- 本物のC++コードをブラウザ上で書いて実行できます。コンパイラのインストールも、ツールチェーンの設定も不要。各レッスンではサーバー側でC++をコンパイルし、結果をその場で表示します。
- モダンなC++:クラスとオブジェクト、継承、仮想関数、参照とポインタ、templates、STL。今どき実際に使われるC++のパターンを扱います。
- AIヒントがC++のコンパイラエラー——特に悪名高く分かりにくいもの——を読み解いて直す手助けをしてくれるので、罰ゲームのようなC++が一気に身近に感じられます。
- 修了するとC++の無料修了証明書がもらえます。systems、game-dev、embeddedといったC++の基礎力が前提となる職種で役立ちます。
C++学習についてのよくある質問
C++は初心者でも学びやすいですか?
C++は難しい言語と言われがちです。ポインタ、手動のメモリ管理、膨大な機能群——どれも理由になります。ただ、初日からすべての機能を使う必要はありません。このコースは実用的な基礎(変数、制御フロー、関数、クラス)から始め、基本がしっかり身についてからポインタやテンプレートに進みます。
CとC++、どちらから学ぶべき?
どちらも低レベルな考え方を学べますが、向かう方向は違います。Cはコンパクトで、メモリやポインタに最初から向き合うことを強制されます。C++はより大きい言語ですが、クラスやSTLを経由してから自分でメモリを管理するという段階的な進み方ができます。アプリケーション開発やゲーム開発が目標ならC++から、組み込みやOS開発ならハードウェアに近いCがおすすめです。
C++を習得するのにどれくらいかかりますか?
C++の基礎——構文、制御フロー、関数、簡単なクラス——は、毎日練習すれば3〜6週間で身につきます。pointers、templates、STLを無理なく使いこなせるようになるには、だいたい3〜6か月。モダンC++のイディオム、パフォーマンスチューニング、大規模なコードベースまで含めた習熟となると、数年がかりの道のりです。
C++をオンラインで無料で学べますか?
はい。インタラクティブなC++コースは無料です — レッスン、コーディング演習、クイズ、修了証まで含めて。エディタはブラウザ上で動くので、C++を書き始めるのにGCC、Clang、Visual Studioをローカルにインストールする必要はありません。
このC++コースを受講するためにコンパイラのインストールは必要ですか?
不要です。C++ の演習はすべてサーバー側のサンドボックス環境でコンパイルされ、出力がコードのすぐ横に表示されます。toolchain も makefile も IDE も要りません。
コース修了後にC++の修了証はもらえますか?
はい。C++コースを修了すると、無料の修了証明書がもらえます。検証可能な証明として、ポートフォリオのコードと一緒に履歴書やLinkedInに追加できます。