C++の基礎と応用

C++の基礎

ChatGPT:

C++の基礎を簡潔にまとめます。


■ 1. 基本構造

cppコピーする編集する#include <iostream>  // 標準入出力

int main() {
    std::cout << "Hello, World!" << std::endl;
    return 0;
}
  • #include <iostream>: 入出力用
  • int main(): プログラムの開始点
  • std::cout: コンソール出力
  • return 0: 正常終了

■ 2. 変数

cppコピーする編集するint number = 10;
double pi = 3.14;
char letter = 'A';
std::string text = "Hello";
bool flag = true;

■ 3. 条件分岐

cppコピーする編集するif (number > 5) {
    std::cout << "Greater than 5" << std::endl;
} else {
    std::cout << "5 or less" << std::endl;
}

■ 4. ループ

  • for
cppコピーする編集するfor (int i = 0; i < 5; i++) {
    std::cout << i << std::endl;
}
  • while
cppコピーする編集するint i = 0;
while (i < 5) {
    std::cout << i << std::endl;
    i++;
}

■ 5. 関数

cppコピーする編集するint add(int a, int b) {
    return a + b;
}

int main() {
    std::cout << add(3, 4) << std::endl; // 7
    return 0;
}

■ 6. クラス

cppコピーする編集するclass Person {
public:
    std::string name;

    void greet() {
        std::cout << "Hello, " << name << std::endl;
    }
};

int main() {
    Person p;
    p.name = "Taro";
    p.greet();
    return 0;
}

■ 7. ポインタ

cppコピーする編集するint num = 10;
int* ptr = &num;
std::cout << *ptr << std::endl; // 10

もし「もっと詳しく」「演習問題」など希望があれば教えてください。

あなた:

C++の応用

ChatGPT:

C++の応用的な内容を段階的に紹介します。


■ 1. 参照とポインタの応用

ポインタ

cppコピーする編集するvoid swap(int* a, int* b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

参照

cppコピーする編集するvoid swap(int& a, int& b) {
    int temp = a;
    a = b;
    b = temp;
}

■ 2. クラスのコンストラクタ・デストラクタ

cppコピーする編集するclass Person {
public:
    std::string name;

    Person(std::string n) : name(n) {
        std::cout << name << " created" << std::endl;
    }

    ~Person() {
        std::cout << name << " destroyed" << std::endl;
    }
};

■ 3. 継承とポリモーフィズム

cppコピーする編集するclass Animal {
public:
    virtual void speak() {
        std::cout << "Some sound" << std::endl;
    }
};

class Dog : public Animal {
public:
    void speak() override {
        std::cout << "Woof!" << std::endl;
    }
};

void makeSound(Animal* a) {
    a->speak();
}

■ 4. テンプレート

cppコピーする編集するtemplate <typename T>
T add(T a, T b) {
    return a + b;
}

■ 5. 標準ライブラリ(STL)

ベクター

cppコピーする編集する#include <vector>

std::vector<int> numbers = {1, 2, 3, 4};
numbers.push_back(5);

マップ

cppコピーする編集する#include <map>

std::map<std::string, int> ages;
ages["Taro"] = 20;

■ 6. ラムダ式

cppコピーする編集するauto add = [](int a, int b) { return a + b; };
std::cout << add(3, 4) << std::endl;

■ 7. スマートポインタ

cppコピーする編集する#include <memory>

std::unique_ptr<int> p1 = std::make_unique<int>(10);
std::shared_ptr<int> p2 = std::make_shared<int>(20);

これらは実践的なC++開発で頻出するテクニックです。

もっと深い例(デザインパターン、マルチスレッド、ファイルIOなど)も必要なら教えてください。

あなた:

もっと

ChatGPT:

さらに高度なC++の応用技術を紹介します。
実践プログラムやパフォーマンス向上に不可欠な技法です。


■ 8. デザインパターンの例:シングルトン

cppコピーする編集するclass Singleton {
private:
    static Singleton* instance;
    Singleton() {}
public:
    static Singleton* getInstance() {
        if (!instance)
            instance = new Singleton();
        return instance;
    }
};
Singleton* Singleton::

投稿者: chosuke

趣味はゲームやアニメや漫画などです

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です