C++の基礎を学ぼう
C++の基礎に触れてみましょう。 C++はゲームや組込み機器、高速な処理が必要な場面で広く使われているプログラミング言語です。
- 基本文法
- 数値の計算
学習内容をみる (5演習)
変数を使ってデータを管理しよう プラス
変数を使ってデータを管理し、プログラムで活用する方法を学びましょう。
- 変数
- 自己代入
学習内容をみる (4演習)
条件分岐でプログラムを制御しよう プラス
条件によって処理を切り替える方法を学びましょう。 if文・switch文と、条件式の値であるbool型について学びます。
- 条件分岐
- bool型
繰り返し処理でプログラムを制御しよう プラス
同じ処理を繰り返す方法を学びましょう。 for文・while文とbreak・continueを使って、おみくじを複数回ふれるようにします。
- 繰り返し処理
- break・continue
文字列を使ってみよう プラス
C++の文字列型 std::string を使って、文字列の作成・連結・比較をおこなう方法を学びましょう。
- std::string
- 文字
学習内容をみる (5演習)
配列(vector)を使ってみよう プラス
複数の値をまとめて管理する std::vector の使い方と、範囲for文を学びましょう。
- std::vector
- 範囲for
関数について学ぼう プラス
処理をまとめて何度でも使える関数の定義と呼び出し、引数・戻り値・参照渡し・再帰について学びましょう。
- 関数
- 参照渡し
- 再帰
関数をもっと便利に使おう プラス
C++ならではの関数の書き方である、オーバーロード・デフォルト引数・const参照について学びましょう。
- オーバーロード
- デフォルト引数
- const参照
標準ライブラリを使ってみよう プラス
C++に用意されている標準ライブラリの使い方を学び、おみくじの結果がランダムになるように改良しましょう。
- 標準ライブラリ
- 乱数
参照とポインタを理解しよう プラス
変数がメモリ上のどこにあるかを表すアドレスと、それを扱う参照・ポインタについて学びましょう。
- 参照
- ポインタ
- アドレス
基本型と型変換について学ぼう プラス
整数型・浮動小数点型の種類と範囲、autoによる型推論、暗黙的な型変換とキャストについて学びましょう。
- 基本型
- 型変換
- auto
構造体とクラスについて学ぼう プラス
関連するデータをまとめる構造体と、データと処理をひとまとめにするクラスの基本を学びましょう。
- 構造体
- クラス
ビット演算の基本を学ぼう プラス
2進数とビット演算(AND・OR・XOR・NOT・シフト)の基本を学びましょう。
- ビット演算
- 2進数
キーボードからの入力を受け取ろう プラス
std::cin を使って、キーボードから数値や文字列を受け取る方法を学びましょう。
- 標準入力
- std::cin
ビットフラグでゲームの状態を管理しよう プラス
constexpr定数とビット演算を組み合わせて、複数の状態を1つの変数で管理する方法を学びましょう。
- ビットフラグ
- constexpr
じゃんけんゲームを作ろう プラス
これまでに学んだ知識を組み合わせて、繰り返し遊べるじゃんけんゲームを完成させましょう。
- じゃんけんゲーム
- 総合演習
標準ライブラリを使いこなそう プラス
map・pair・enum class・optional・ラムダ式など、実務で毎日使う標準ライブラリの部品を学びましょう。
- std::map
- enum class
- std::optional
- ラムダ式
継承とポリモーフィズム プラス
基底クラスからの継承、virtual/override、抽象クラスを学び、まとめて扱えるオブジェクト指向を身につけましょう。
- 継承
- virtual/override
- 抽象クラス
実務レベルまで プロ
RAII と所有権 プロ
デストラクタとRAII、unique_ptrによる所有権を学び、安全にリソースを管理するC++らしい書き方を身につけましょう。
- デストラクタ
- RAII
- std::unique_ptr
テストとファイル分割 プロ
hpp/cppの分割、I/O分離、例外、GoogleTestによるテストを学び、実務で通用するコードの書き方を身につけましょう。
- ファイル分割
- 例外
- GoogleTest
道場:ターン制バトルゲームを作ろう 道場 プロ
クラス・継承・ポリモーフィズム・unique_ptr・テストを全部使って、コマンド選択式のターン制バトルゲームを実装しましょう。
- 総合演習
- オブジェクト指向
- テスト
学習内容をみる (1演習)
演算子をオーバーロードしよう プロ
独自のクラスに ==・<・+・<< の振る舞いを定義して、組み込み型のように自然に扱えるようにしましょう。
- 演算子オーバーロード
- 値クラス
テンプレートで汎用的に書こう プロ
型だけ違う同じ処理をまとめるテンプレートを学び、vector<T> が動く仕組みを理解しましょう。
- 関数テンプレート
- クラステンプレート
STLコンテナを使い分けよう プロ
set・unorderedmap・stack・queue・deque・priorityqueue の特徴と、場面に応じた使い分けを学びましょう。
- STLコンテナ
- 使い分け
イテレータとアルゴリズムの実践 プロ
添字の無いコンテナを回すイテレータと、accumulate・transform・erase_if などのアルゴリズムを学びましょう。
- イテレータ
- アルゴリズム
道場:乗換案内ツールを作ろう 道場 プロ
駅と路線のデータから最短経路を検索するツールを、BFS・ファイル分割・テストを駆使して実装しましょう。
- 総合演習
- STLコンテナ
- アルゴリズム
- テスト
学習内容をみる (2演習)
コピーとムーブ プロ
値を写すコピーと、所有権を引き渡すムーブの違いを理解し、std::move を使いこなしましょう。
- コピー
- ムーブ
- std::move
shared_ptrで所有権を共有しよう プロ
複数の持ち主で1つのオブジェクトを安全に共有する sharedptr と、循環を断つ weakptr を学びましょう。
- shared_ptr
- weak_ptr
文字列を加工しよう プロ
stringstream・find・substr・stoi を使って、文字列からデータを取り出し組み立てられるようにしましょう。
- stringstream
- 文字列操作
ファイルに保存しよう プロ
ofstream・ifstream でファイルを読み書きして、セーブデータや設定ファイルを作れるようにしましょう。
- ファイル入出力
- fstream
例外を使いこなそう プロ
標準例外を受け止め、独自の例外を設計して、optional との使い分けを学びましょう。
- 標準例外
- 独自例外
static・名前空間・警告とassert プロ
staticメンバ・namespace・#pragma once・-Wall警告・assert でコードを整理し固めましょう。
- static
- namespace
- assert
道場:ロボットを動かす命令言語を作ろう 道場 プロ
小さな命令言語のインタプリタ(パース・実行・制御構造・変数・手続き・ファイル読み込み)を、設計からテストまで作りましょう。
- 総合演習
- インタプリタ
- 文字列処理
- 例外
- テスト
学習内容をみる (1演習)
よくある質問
- C++は初心者でも学べますか?
- はい、学べます。本コースでは図解やイラストを多用し、専門用語も丁寧に解説しながら基礎から順番に進めるため、プログラミング未経験の方でも安心して学習できます。
- C言語を知らなくても大丈夫ですか?
- 大丈夫です。本コースはC言語の知識を前提にせず、C++の書き方(std::cout、std::string、std::vector など)で最初から学びます。
- このコースを修了すると何ができるようになりますか?
- 変数、条件分岐、繰り返し、文字列、vector、関数、参照、構造体とクラス、継承、標準入力に加えて、演算子オーバーロード・テンプレート・STLコンテナ・イテレータ・ムーブ・shared_ptr・例外・ファイル入出力を組み合わせたプログラムが書けるようになります。途中でじゃんけんゲームや冒険者ギルドの題材を作り、3つの道場ではクラスとテストで組み立てるターン制バトルゲーム、BFS で経路を検索する乗換案内ツール、命令を読み取ってロボットを動かす「ロボット命令言語」のインタプリタを自分で実装します。
- C++はどんな分野で使われていますか?
- ゲームエンジン、組込みシステム、OSやブラウザ、金融システム、競技プログラミングなど、高速な処理と大規模な開発の両方が求められる分野で広く使われています。
- 数学の知識は必要ですか?
- 中学校レベルの四則演算がわかれば問題ありません。高度な数学知識がなくてもC++の基礎は十分に学べます。