template< class T1, class T2 >
class Pair {
T1 first;
T2 second;
};
最初の要素が 2 番目の要素になり、2 番目の要素が最初の要素になるように swap() メソッドを作成するように求められています。私は持っている:
Pair<T2,T1> swap() {
return Pair<T2,T1>(second, first);
}
しかし、これはスワップではなく新しいオブジェクトを返します。これは、独自のデータ メンバーを変更する void メソッドである必要があると思います。T1 と T2 は潜在的に異なるクラス タイプであるため、これを行うことは可能ですか? つまり、temp=first、first=second、second=temp を単純に設定することはできません。これは、それらを異なる型に変換しようとするためです。型の順序を変更するテンプレート オブジェクトが必要になる可能性がある理由はわかりませんが、それは混乱を招くように見えますが、それは私が求められていることのようです。
編集:答えてくれてありがとう!私が考えたように、その場でスワップすることは明らかに意味がありません。swap() 関数の要求は非常にあいまいでした。