メンバ関数呼び出し
関数が生えてる!?
いよいよインスタンスの本領発揮タイムだよ。
インスタンスは、.
に続けて、そのクラスのその インスタンスについてる関数を呼び出せる よ。
この関数のことを、そのクラスの メンバ関数 っていう。
試しに std::string
クラスだと、こんなメンバ関数を呼び出せる。
#include <iostream>
#include <string>
int main() {
std::string text = "Hello";
std::cout << text << "\n"; // Hello
// append、末尾に追加
text.append(", World");
std::cout << text << "\n"; // Hello, World
text += ", World"; // 上と同じ (このクラスの機能)
std::cout << text << "\n"; // Hello, World, World
text.append(2, '!'); // 2 個の '!'
std::cout << text << "\n"; // Hello, World, World!!
// insert、指定位置に挿入
// 注意! 位置は 0 から数える
text.insert(0, ">> "); // 0 番目に ">> "
std::cout << text << "\n"; // >> Hello, World, World!!
text.insert(22, 3, '.'); // 22 番目に 3 個の '.'
std::cout << text << "\n"; // >> Hello, World, World...!!
// replace、指定範囲を書き換え
text.replace(0, 1, ""); // 0 番目から 1 文字を "" に
std::cout << text << "\n"; // > Hello, World, World...!!
text.replace(14, 10, 2, '~'); // 14 番目から 10 文字を 2 個の '~' に
std::cout << text << "\n"; // > Hello, World~~!!
std::string sub; // 保管用にもう一個
// substr、指定範囲をコピー
sub = text.substr(2); // 2 番目から最後まで
std::cout << sub << "\n"; // Hello, World~~!!
sub = sub.substr(7, 5); // 7 番目から 5 文字まで
std::cout << sub << "\n"; // World
}
こいつらを使いこなすだけでも、基本的なテキスト処理ができちゃう。
この std::string
は別に暗記とかしなくてもいいよ。ネットで調べればいくらでも出てくる。
クラスのインスタンス から メンバ関数を呼び出す 流れだけは忘れないでね。