【初心者歓迎】C/C++室 Ver.38【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0796デフォルトの名無しさん
2007/06/20(水) 01:49:32template<typename T> value_t
{
public:
T get() const { return value; }
void set(T n) { value = n; }
private:
T value;
};
という感じになると思います。value_t<int> とかなら問題ないと思いますが、
(普通は参照を使って渡す)クラスや構造体が型に指定されると、
無駄にコピーコンストラクタが呼ばれたりすると思うので、微妙な感じになってしまいます。
ということで、最初から参照を使って、
template<typename T> value_t
{
public:
const T & get() const { return value; }
void set(const T &n) { value = n; } // ここで operator= が呼ばれるのは問題ないことにする
private:
T value;
};
こう書いても問題ないですか?(というか、こう書くべきですか?)
■ このスレッドは過去ログ倉庫に格納されています