<C++Learn/>
ブラウザだけで学習できる

C++を学ぼう

C++の基礎からシステムプログラミング、モダンC++まで。 ブラウザ上でコードを書きながら学びましょう。

学習ロードマップ

あなたの目標に合わせて学習パスを選ぼう

🔵

C++基礎

プログラミングの基礎を学ぶ

変数、データ型、制御構文、関数、ポインタと参照、配列とベクター、クラスとOOPなど、C++プログラミングの基礎をしっかりと身につけましょう。

学べること

  • 変数とデータ型
  • 制御構文
  • 関数
  • ポインタと参照
  • 配列とベクター
  • クラスとOOP

コード例

// C++の基本
#include <iostream>
#include <vector>
#include <string>

int main() {
    std::string name = "太郎";
    int age = 25;
    std::vector<std::string> hobbies = {"読書", "ゲーム", "料理"};

    std::cout << name << "さん(" << age << "歳)" << std::endl;
    for (const auto& hobby : hobbies) {
        std::cout << hobby << " ";
    }
    return 0;
}

システムプログラミング

低レベル制御とシステム開発

メモリ管理、スマートポインタ、マルチスレッド、ファイルI/O、コンパイル・ビルド、デバッグなどシステムレベルの開発を学びましょう。

学べること

  • メモリ管理
  • スマートポインタ
  • マルチスレッド
  • ファイルI/O
  • コンパイル・ビルド
  • デバッグ

コード例

// スマートポインタでメモリ安全
#include <memory>
#include <iostream>

struct Sensor {
    std::string name;
    double value;
    Sensor(std::string n, double v)
        : name(std::move(n)), value(v) {}
    ~Sensor() { std::cout << name << " 破棄\n"; }
};

int main() {
    auto sensor = std::make_unique<Sensor>("温度", 23.5);
    std::cout << sensor->name << ": " << sensor->value << std::endl;
    // スコープを抜けると自動解放
    return 0;
}
🚀

応用スキル

モダンC++を使いこなす

テンプレート、STLアルゴリズム、ムーブセマンティクス、デザインパターン、アルゴリズム、C++20の新機能など実践的なスキルを学びましょう。

学べること

  • テンプレート
  • STLアルゴリズム
  • ムーブセマンティクス
  • デザインパターン
  • アルゴリズム
  • C++20

コード例

// テンプレートとコンセプト (C++20)
#include <concepts>
#include <iostream>

template<typename T>
concept Numeric = std::integral<T> || std::floating_point<T>;

template<Numeric T>
T clamp(T value, T low, T high) {
    return (value < low) ? low : (value > high) ? high : value;
}

int main() {
    std::cout << clamp(15, 0, 10) << std::endl;   // 10
    std::cout << clamp(3.14, 0.0, 5.0) << std::endl; // 3.14
    return 0;
}

準備はできた?

まずはC++基礎から始めて、着実にスキルを積み上げていきましょう。

C++基礎から始める

他の言語も学ぼう

同じシリーズの学習アプリで他の言語もマスターしよう