クラスとインスタンス

クラスの世界へようこそ


ここから、クラス をどんどんやっていく。当たり前のように使うことになるから覚えよう。

あ、教室のことじゃないよ。

言語に最初からあるものじゃなくて、ちょっと特殊な プログラム内で作った型。しかも既にたくさん用意されている。

今回は string ファイルの std::string クラスを使ってみよう。

これはテキストを変数に格納して操作できるクラスだよ。

他にもいろんなクラスはあるけど、まずこれで慣れよう。

#include <iostream>
#include <string>

int main() {
  std::string s;

  std::cout << s; // まだ何も出ない
}

うん。変数はいつもどおり。

この変数 s には、ここで初登場の特殊なものが入る。

この入ったものをクラスに対して インスタンス という。

インスタンスを変数に入れずに直接作ることもできる。

その場合は関数呼び出しのように、クラスを使う。

std::string(); // インスタンスが作られるが変数には入らない
std::string text = std::string(); // 変数に初期化
std::string label; // ↑はなくても同じ

// これは関数の宣言
std::string question(); // 動くけど変数ではない

クラスは、インスタンスを作る関数またはその型 だと思って大丈夫。

インスタンスを作るのにも初期化ができる。

std::string には 文字列 を渡して初期化できる。

初期化には 3 種類の構文がある。どれを使うかはお好みで。

// 関数風
std::string morning = std::string("Good morning!\n");

// 渡す初期値が一つだけのとき使える
std::string afternoon = "Good afternoon.\n";

// 変数風
std::string evening("Good evening...\n");

std::cout << morning << afternoon << evening;

ちなみに、この文法は今までの型にもちゃんと使える。

int a = int(2);

int b = 3;

int c(4);

std::cout << a << b << c;