ページ 11

ゲッター・セッターについて

Posted: 2015年1月07日(水) 18:18
by だいだい

コード:


class Work
{
private:
   int work[256];
};
int配列のゲッターとセッターはどのようにコードをかけばいいんでしょうか?
誰かお願いします

Re: ゲッター・セッターについて

Posted: 2015年1月07日(水) 20:07
by softya(ソフト屋)
どちらかと言うとint work[256];のゲッターとセッターが必要なクラスの設計に危険を感じます。
隠蔽できない代物なのでしょうか?

Re: ゲッター・セッターについて

Posted: 2015年1月10日(土) 13:07
by とっち
一応以下のように書くことで実現できます
しかしのちのちメモリ周りのひどいバグを生む原因となる可能性がありますので、よほど特殊な場合を除いておすすめしません
ソフト屋さんの言われているように隠ぺいするような代替手段を探したほうがいいかもしれません

コード:

class Work{
private:
  int work[256];
public:
  int *getter(){return work;}
  void setter(const int *a){for(int i=0;i<256;i++)work[i]=a[i];}
};

Re: ゲッター・セッターについて

Posted: 2015年1月10日(土) 15:31
by みけCAT
1要素ずつ設定/取得する設計もありかもしれません。
今はスマホからの投稿なので具体的なコードは省略しますが、

コード:

int get(int idx);
void set(int idx, int value);
みたいな感じで。