メソッド (メンバ関数)
CoddyのC++ジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 8/104。
メンバ関数は、オブジェクトができることを定義します。これらには戻り値の型、名前、およびオプションのパラメータがあります。
値を返すメソッド
class Calculator {
public:
int add(int a, int b) {
return a + b;
}
};voidメソッド(戻り値なし)
class Printer {
public:
void printMessage(std::string msg) {
std::cout << msg << std::endl;
}
};boolを返すメソッド
class Checker {
public:
bool isPositive(int num) {
return num > 0;
}
};ヘッダーで宣言し、ソースファイルで実装する
// Calculator.h
class Calculator {
public:
int add(int a, int b);
};
// Calculator.cpp
int Calculator::add(int a, int b) {
return a + b;
}戻り値の型はメソッド名の前に記述します。メソッドが何も返さない場合は void を使用します。:: スコープ解決演算子は、実装をそのクラスに関連付けます。
チャレンジ
中級StringHelper クラスに対して、異なる戻り値の型とパラメータを持つ4つのメンバ関数を実装してください:
getLength()—intを返し、テキストの長さを返しますtoUpperCase()—std::stringを返し、テキストを大文字にして返しますcontains(std::string word)—boolを返し、テキストにその単語が含まれているかどうかを返しますrepeat(int times)—std::stringを返し、テキストをスペース区切りで繰り返して返します
チートシート
メンバ関数は、オブジェクトができることを定義します。これらには戻り値の型、名前、およびオプションのパラメータがあります。
値を返すメソッド:
class Calculator {
public:
int add(int a, int b) {
return a + b;
}
};Voidメソッド(戻り値なし):
class Printer {
public:
void printMessage(std::string msg) {
std::cout << msg << std::endl;
}
};boolを返すメソッド:
class Checker {
public:
bool isPositive(int num) {
return num > 0;
}
};ヘッダーで宣言し、ソースで実装する:
// Calculator.h
class Calculator {
public:
int add(int a, int b);
};
// Calculator.cpp
int Calculator::add(int a, int b) {
return a + b;
}戻り値の型はメソッド名の前に記述します。メソッドが何も返さない場合は void を使用します。:: スコープ解決演算子は、実装をそのクラスに関連付けます。
自分で試してみよう
#include <iostream>
#include "StringHelper.h"
int main() {
std::string input;
std::getline(std::cin, input);
StringHelper helper;
helper.text = input;
std::cout << "Original: " << helper.text << std::endl;
std::cout << "Length: " << helper.getLength() << std::endl;
std::cout << "Uppercase: " << helper.toUpperCase() << std::endl;
std::cout << "Contains 'World': " << (helper.contains("World") ? "yes" : "no") << std::endl;
std::cout << "Repeated: " << helper.repeat(3) << std::endl;
return 0;
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
オブジェクト指向プログラミングのすべてのレッスン
3コンストラクタとデストラクタ
デフォルトコンストラクタ引数付きコンストラクタコピーコンストラクタムーブコンストラクタコンストラクタ初期化リスト委譲コンストラクタデストラクタ詳解Rule of Three / Five / Zeroまとめ - Stringクラス6演算子オーバーロード
演算子オーバーロード入門算術演算子のオーバーロード比較演算子のオーバーロードストリーム演算子代入演算子のオーバーロード[] と () 演算子のオーバーロード型変換演算子まとめ:Matrix クラス