C++ における OOP 入門
CoddyのC++ジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 5/104。
オブジェクト指向プログラミングは、データと振る舞いをひとまとめにするクラスにコードを整理します。
パブリックメンバを持つシンプルなクラス
class Dog {
public:
std::string name;
int age;
std::string bark() {
return name + " says Woof!";
}
};オブジェクトの作成と使用
Dog dog;
dog.name = "Buddy";
dog.age = 3;
std::cout << dog.bark() << std::endl;出力:
Buddy says Woof!クラスは構造(どのようなデータを保持し、どのようなアクションを実行できるか)を定義します。オブジェクトは、作成して使用する特定のインスタンスです。public: の下にあるメンバは、どこからでもアクセスできます。
チャレンジ
簡単公開メンバとメソッドを持つDogクラスを作成してください:
- 公開メンバ:
name(string) とage(int) bark()—"<name> says Woof!"を返しますinfo()—"<name> is <age> years old"を返します
チートシート
オブジェクト指向プログラミングは、データと振る舞いをひとまとめにしたクラスにコードを整理します。
クラスは構造、つまりどのようなデータを保持し、どのようなアクションを実行できるかを定義します。オブジェクトは、作成して使用する具体的なインスタンスです。
公開(public)メンバを持つクラスの定義:
class Dog {
public:
std::string name;
int age;
std::string bark() {
return name + " says Woof!";
}
};オブジェクトの作成と使用:
Dog dog;
dog.name = "Buddy";
dog.age = 3;
std::cout << dog.bark() << std::endl;
// 出力: Buddy says Woof!public: の下にあるメンバは、どこからでもアクセスできます。
自分で試してみよう
#include <iostream>
#include "Dog.h"
int main() {
std::string name;
int age;
std::getline(std::cin, name);
std::cin >> age;
Dog dog;
dog.name = name;
dog.age = age;
std::cout << dog.bark() << std::endl;
std::cout << dog.info() << std::endl;
return 0;
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
オブジェクト指向プログラミングのすべてのレッスン
3コンストラクタとデストラクタ
デフォルトコンストラクタ引数付きコンストラクタコピーコンストラクタムーブコンストラクタコンストラクタ初期化リスト委譲コンストラクタデストラクタ詳解Rule of Three / Five / Zeroまとめ - Stringクラス6演算子オーバーロード
演算子オーバーロード入門算術演算子のオーバーロード比較演算子のオーバーロードストリーム演算子代入演算子のオーバーロード[] と () 演算子のオーバーロード型変換演算子まとめ:Matrix クラス