- 796 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 01:49:32 ]
- 例としてですが、とある値を格納するクラスを作ってます。型はテンプレートで
template<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; }; こう書いても問題ないですか?(というか、こう書くべきですか?)
|

|