読者です 読者をやめる 読者になる 読者になる

【C++】アクセサとミューテータ

注意)調べた限りでは日本語圏と英語圏で定義が異なる可能性あり。
下記は英語圏の定義である。

アクセサ、ミューテータ概要

アクセサ(accessors)はデータメンバにアクセスするためのメンバ関数
データメンバの操作を行えるメンバ関数はミューテータ(mutators)と呼ばれる。
簡単に言うとゲッターはアクセサで、セッターはミューテータとなる。

Accessors are member functions that allow access to data members.
Member functions that allow for modification of the data members are called mutators.

Accessors and Mutators in C++

アクセサとはなにか

クラスのprivateなデータメンバを取得できる。
そのためには下記が満たされている必要がある。

  • アクセサは引数を必要としない
  • アクセサの名前はGetというプレフィクスが必要
class Toto{
 private :
  int age;

 public :
  int GetAge();

};

int Toto::GetAge(){
 return age;
}

ミューテータとはなにか

クラスのprivateなデータメンバを変更できる。
そのためには下記が満たされている必要がある。

  • 引数として、データメンバに設定する値を持つ。その値はデータメンバと同じ型のもの。
  • ミューテータは返り値を必要としない
  • ミューテータの名前はSetというプレフィクスが必要
class Toto{
 private :
  int _age;

 public :
  void SetAge(int);

};

void Toto::SetAge(int age){
 _age = age;

}

オブジェクトの状態を変更するメソッド。
アクセサもミューテータに含まれる。

(参考)Accessors and Mutators in C++