C#, C♯, C#相談室 Part75
■ このスレッドは過去ログ倉庫に格納されています
0404402
2012/09/23(日) 09:24:22.82ttp://d.hatena.ne.jp/cubicdaiya/20080606/1212695409
前置インクリメントの場合、インクリメント後のオブジェクト*thisのコピーを返しても良いが、*thisの参照を返すこともできるし普通そうする
例: std::string& Counter::operator() { this->str += "1"; return *this; }
後置インクリメントの場合、*thisはインクリメントされるのに、返さねばならないのはインクリメント前ということで、別オブジェクトになるのでコピーを返す他無い
例 std::auto_ptr<std::string> Counter::operator() { std::auto_ptr<string> p(new string(this->str)); this->str += "1"; return p; }
当然コピーを返す方が実行効率が悪い
■ このスレッドは過去ログ倉庫に格納されています