みなさんにとってのデータアクセスの考え方についてお聞きしたいです。

class CMember
{
private:
int m_Age;
};
というクラスがあった場合、そのメンバーアクセスには
bool SetAge(int Age);
int GetAge() {return m_Age;}
というメンバー関数を用意しておこなうようにしていますが。

もし、他に
CStrVector m_NickName;// 文字列クラスの配列を管理している管理クラス
というデータがあった場合、取得に関してはどのような概念をお持ちでしょうか?

�@メンバー関数は外から干渉絶対にさせないので、コピーにかかる時間は深く考慮せず
CStrVector& GetNickName() {return m_NickName;} とおこなう。

�Aprivateメンバー宣言されている時点で、さわられたくないと言う意思表示をしているので
ポインタを取得させてしまう。
CStrVector* GetNickName() {return &m_NickName;} とおこなう。

ちなみにm_NickNameで配列化される文字列は300個ぐらいです、
各文字列はせいぜい20バイトほどです。
MFCで言えばCStrVectorはCStringArrayのようなものだとお考えください。
作製しているアプリは事務的な物です、決してゲームのような一刻の早さを求める物ではありません。
みなさんならどちらでしょうか?