首页 > 代码库 > C++回调函数

C++回调函数

 1 #include <iostream> 2 #include <string> 3 using namespace std; 4  5  6 void SelectSort( int *pArray, int size ){ 7     if( size <= 1 ) 8     { 9         return;10     }11 12     for( int i=0; i<size-1; ++i )13     {14         int min = i;15         for( int j=i+1; j<size; ++j )16         {17             if( pArray[j] < pArray[min] )18             {19                 min = j;20             }21         }22         if( min != i )23         {24             int temp = pArray[i];25             pArray[i] = pArray[min];26             pArray[min] = temp;27         }28     }29 30 }31 32 template< typename T >33 void Display( T *pArray, int size )34 {35     for( int i=0; i<size; ++i )36     {37         cout.width(4);38         cout.setf( ios::left );39         cout << pArray[i];40     }41     cout << endl;42 }43 44 45 void Display1( const string &str )46 {47     cout << str << " is very high" << endl; 48 }49 50 void Display2( const string &str )51 {52     cout << str << " is very rich" << endl; 53 }54 55 void Display3( const string &str )56 {57     cout << str << " is very handsome" << endl; 58 }59 60 void Show( string str, void (*dis)(const string&) )61 {62     dis( str );63 }64 65 void ShowStrArray( string *str, int size, void (*dis)(const string&) )66 {67     if( size <= 0 )68     {69         return;70     }71 72     for( int i=0; i<size; ++i )73     {74         dis( str[i] );75     }76 }77 78 int main()79 {80     //cout << "Hello" << endl;81 82     //int pNum[] = { 2, 1, 5, 3, 4 };83     //SelectSort( pNum, 5 );84     //Display( pNum, 5 );85 86     //Show("Green",Display1);87     //Show("Kitty",Display2);88     //Show("Lisa",Display3);89 90     string pStr[] = { "Green", "Kitty", "Lisa" };91     ShowStrArray( pStr, 3, Display1 );92 93 94 95 96     ShowStrArray( pStr, 3, Display2 );97     ShowStrArray( pStr, 3, Display3 );98     return 0;99 }

运行结果: