C++

C++は、C言語を土台に発展したプログラミング言語で、ゲーム開発や組込み機器、高速な処理が求められるシステムなど、私たちの生活を支える多くの場面で活躍しています。std::string や std::vector といった便利な標準ライブラリと、参照・クラスなどの仕組みを備えており、「コンピュータの動く仕組み」と「読みやすいコードの書き方」を同時に学べるのが特徴です。本コースでは、初学者でも挫折しないように基本構文から順番に学んでいきます。

  • C++

こんな人におすすめ

C++を基礎から学びたい方、コンピュータの仕組みと読みやすいコードの書き方を同時に身につけたい方におすすめのコースです。

  • プログラミング未経験からC++を学びたい方
  • ゲームプログラマーや組込みエンジニアを目指す方
  • 競技プログラミングに挑戦したい方
  • 情報系の大学授業や新人研修の予習・復習をしたい方
  • PythonやJavaScriptの経験があり、C++にも挑戦したい方

C++で学べること

本コースでは、未経験者でも安心して学べるように、変数・条件分岐・繰り返しといったプログラミングの基本構文から、std::string・std::vector・関数・参照・構造体とクラス・継承とポリモーフィズム・unique_ptr・ファイル分割とテストを段階的に学びます。後半では演算子オーバーロード・テンプレート・STLコンテナの使い分け・イテレータとアルゴリズム・コピーとムーブ・shared_ptr/weak_ptr・文字列とファイル入出力・例外・static/名前空間まで実務レベルに広げ、3つの道場(ターン制バトルゲーム・乗換案内ツール・ロボット命令言語)で総合演習します。

C++の基礎を学ぼう

C++の基礎に触れてみましょう。 C++はゲームや組込み機器、高速な処理が必要な場面で広く使われているプログラミング言語です。

  • 基本文法
  • 数値の計算
学習内容をみる (5演習)

変数を使ってデータを管理しよう プラス

変数を使ってデータを管理し、プログラムで活用する方法を学びましょう。

  • 変数
  • 自己代入
学習内容をみる (4演習)

条件分岐でプログラムを制御しよう プラス

条件によって処理を切り替える方法を学びましょう。 if文・switch文と、条件式の値であるbool型について学びます。

  • 条件分岐
  • bool型
学習内容をみる (7演習)

繰り返し処理でプログラムを制御しよう プラス

同じ処理を繰り返す方法を学びましょう。 for文・while文とbreak・continueを使って、おみくじを複数回ふれるようにします。

  • 繰り返し処理
  • break・continue
学習内容をみる (6演習)

文字列を使ってみよう プラス

C++の文字列型 std::string を使って、文字列の作成・連結・比較をおこなう方法を学びましょう。

  • std::string
  • 文字
学習内容をみる (5演習)

配列(vector)を使ってみよう プラス

複数の値をまとめて管理する std::vector の使い方と、範囲for文を学びましょう。

  • std::vector
  • 範囲for
学習内容をみる (5演習)

関数をもっと便利に使おう プラス

C++ならではの関数の書き方である、オーバーロード・デフォルト引数・const参照について学びましょう。

  • オーバーロード
  • デフォルト引数
  • const参照
学習内容をみる (4演習)

標準ライブラリを使ってみよう プラス

C++に用意されている標準ライブラリの使い方を学び、おみくじの結果がランダムになるように改良しましょう。

  • 標準ライブラリ
  • 乱数
学習内容をみる (5演習)

参照とポインタを理解しよう プラス

変数がメモリ上のどこにあるかを表すアドレスと、それを扱う参照・ポインタについて学びましょう。

  • 参照
  • ポインタ
  • アドレス
学習内容をみる (7演習)

基本型と型変換について学ぼう プラス

整数型・浮動小数点型の種類と範囲、autoによる型推論、暗黙的な型変換とキャストについて学びましょう。

  • 基本型
  • 型変換
  • auto
学習内容をみる (6演習)

ビット演算の基本を学ぼう プラス

2進数とビット演算(AND・OR・XOR・NOT・シフト)の基本を学びましょう。

  • ビット演算
  • 2進数
学習内容をみる (5演習)

キーボードからの入力を受け取ろう プラス

std::cin を使って、キーボードから数値や文字列を受け取る方法を学びましょう。

  • 標準入力
  • std::cin
学習内容をみる (4演習)

ビットフラグでゲームの状態を管理しよう プラス

constexpr定数とビット演算を組み合わせて、複数の状態を1つの変数で管理する方法を学びましょう。

  • ビットフラグ
  • constexpr
学習内容をみる (5演習)

じゃんけんゲームを作ろう プラス

これまでに学んだ知識を組み合わせて、繰り返し遊べるじゃんけんゲームを完成させましょう。

  • じゃんけんゲーム
  • 総合演習
学習内容をみる (6演習)

継承とポリモーフィズム プラス

基底クラスからの継承、virtual/override、抽象クラスを学び、まとめて扱えるオブジェクト指向を身につけましょう。

  • 継承
  • virtual/override
  • 抽象クラス
学習内容をみる (6演習)

実務レベルまで プロ

RAII と所有権 プロ

デストラクタとRAII、unique_ptrによる所有権を学び、安全にリソースを管理するC++らしい書き方を身につけましょう。

  • デストラクタ
  • RAII
  • std::unique_ptr
学習内容をみる (5演習)

テストとファイル分割 プロ

hpp/cppの分割、I/O分離、例外、GoogleTestによるテストを学び、実務で通用するコードの書き方を身につけましょう。

  • ファイル分割
  • 例外
  • GoogleTest
学習内容をみる (8演習)

道場:ターン制バトルゲームを作ろう 道場 プロ

クラス・継承・ポリモーフィズム・unique_ptr・テストを全部使って、コマンド選択式のターン制バトルゲームを実装しましょう。

  • 総合演習
  • オブジェクト指向
  • テスト
学習内容をみる (1演習)

演算子をオーバーロードしよう プロ

独自のクラスに ==・<・+・<< の振る舞いを定義して、組み込み型のように自然に扱えるようにしましょう。

  • 演算子オーバーロード
  • 値クラス
学習内容をみる (6演習)

テンプレートで汎用的に書こう プロ

型だけ違う同じ処理をまとめるテンプレートを学び、vector<T> が動く仕組みを理解しましょう。

  • 関数テンプレート
  • クラステンプレート
学習内容をみる (6演習)

イテレータとアルゴリズムの実践 プロ

添字の無いコンテナを回すイテレータと、accumulate・transform・erase_if などのアルゴリズムを学びましょう。

  • イテレータ
  • アルゴリズム
学習内容をみる (7演習)

道場:乗換案内ツールを作ろう 道場 プロ

駅と路線のデータから最短経路を検索するツールを、BFS・ファイル分割・テストを駆使して実装しましょう。

  • 総合演習
  • STLコンテナ
  • アルゴリズム
  • テスト
学習内容をみる (2演習)

コピーとムーブ プロ

値を写すコピーと、所有権を引き渡すムーブの違いを理解し、std::move を使いこなしましょう。

  • コピー
  • ムーブ
  • std::move
学習内容をみる (6演習)

shared_ptrで所有権を共有しよう プロ

複数の持ち主で1つのオブジェクトを安全に共有する sharedptr と、循環を断つ weakptr を学びましょう。

  • shared_ptr
  • weak_ptr
学習内容をみる (5演習)

文字列を加工しよう プロ

stringstream・find・substr・stoi を使って、文字列からデータを取り出し組み立てられるようにしましょう。

  • stringstream
  • 文字列操作
学習内容をみる (6演習)

ファイルに保存しよう プロ

ofstream・ifstream でファイルを読み書きして、セーブデータや設定ファイルを作れるようにしましょう。

  • ファイル入出力
  • fstream
学習内容をみる (5演習)

例外を使いこなそう プロ

標準例外を受け止め、独自の例外を設計して、optional との使い分けを学びましょう。

  • 標準例外
  • 独自例外
学習内容をみる (5演習)

static・名前空間・警告とassert プロ

staticメンバ・namespace・#pragma once・-Wall警告・assert でコードを整理し固めましょう。

  • static
  • namespace
  • assert
学習内容をみる (5演習)

道場:ロボットを動かす命令言語を作ろう 道場 プロ

小さな命令言語のインタプリタ(パース・実行・制御構造・変数・手続き・ファイル読み込み)を、設計からテストまで作りましょう。

  • 総合演習
  • インタプリタ
  • 文字列処理
  • 例外
  • テスト
学習内容をみる (1演習)