C++でメンバ変数へのアクセサを作る場合、最近こうやっている。

class C{

private:
  int _value;
public:
   C(){};
  ~C(){};
  int Value(void){return _value;}
  int Value(const int value){ _value = value; return _value; }

};

オーバーロードを用いてこんな感じにしている。

メンバ変数と同じような名前にすることで

int main(void){
  C c;
  c.Value( 1970 + 45 );
  std :: cout << 100 + c.Value() << std :: endl;

  return 0;
}

get*set*とするよりかなりスマートでは?

テンプレートクラスの場合はこんな感じ。

template<typename T>
class C{
  private:
  T _value;
  public:
    C(void){};
   ~C(void){};

   const T& Value(void){ return _value; }
   const T& Value(const T& value){ _value = value; return _value; } 
};

int main(void){

  C<std :: string> c; c.Value(std :: string(Str :) );

  std :: cout << c.Value() + Test String << std :: endl;

  return 0; 
}