Menu
Coddy logo textTech

メソッド (メンバ関数)

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 を使用します。:: スコープ解決演算子は、実装をそのクラスに関連付けます。

challenge icon

チャレンジ

中級

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;
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

オブジェクト指向プログラミングのすべてのレッスン