C / C ++交換二つの数字は、第三の変数を使用することなく、関数テンプレートを達成するために

#include <iostreamの> 

テンプレート <型名T>
 ボイド exchangeTwoNumber(T&T 1、T&T2); 

ボイド試験()。
INT のmain() { int型、A = 10、B = 20 二重 Q = 10.1、W = 20.2 チャー Z = ' Z '、X = ' X ' std :: coutの << " 交换前的= " << << "B = " << B << はstd ::てendl; std ::" 交换前的Q = " << Q << "W = " W << << はstd :: ENDL。 std :: COUT << " 交换前的Z = " << Z << "X = " << X << はstd :: ENDL。 exchangeTwoNumber(B) exchangeTwoNumber(Q、W)。 exchangeTwoNumber(Z、X)。 テスト(); std :: coutの << はstd ::てendl; std :: coutの << はstd ::てendl; std :: coutの << " 交换后的= " << <<:: ENDL STD; STD :: COUT << " 交換後のQ = " << << Q "W = " << << W STD :: ENDL; STD :: COUT << 交換後のZ = " << << Z " 、Z = " << << X STD :: ENDL; } テンプレート <型名T> ボイド exchangeTwoNumber(T1&T、T&T2)//汎用関数テンプレート { T1 = T1 + T2。 T2 = T1 - T2、 T1 = T1 - T2。 } ボイド試験() //テンプレート関数を変形XOR方式は、コンパイラが通過しない { INT A = 1、B = 2 ; A ^ = B; B ^ = A; A ^ = B; STD :: COUT << " ... A = " << << A " 、B = " << << B STD :: ENDL; }

 

おすすめ

転載: www.cnblogs.com/azbane/p/11261698.html