Język C++
mem_fun
[szablon funkcji] Zwraca obiekt funkcyjny opakowujący metodę (wersja dla wskaźnika).Składnia
#include <functional>
namespace std {
template < class S, class T > mem_fun_t < S, T > mem_fun( S( T::* f )() )
{ return mem_fun_t < S, T >( f ); }
template < class S, class T, class A > mem_fun1_t < S, T, A > mem_fun( S( T::* f )( A ) )
{ return mem_fun1_t < S, T, A >( f ); }
template < class S, class T > const_mem_fun_t < S, T > mem_fun( S( T::* f )() const )
{ return const_mem_fun_t < S, T >( f ); }
template < class S, class T, class A > const_mem_fun1_t < S, T, A > mem_fun( S( T::* f )( A ) const )
{ return const_mem_fun1_t < S, T, A >( f ); }
}
Parametry szablonu
Przyjmowane argumenty
Wartość zwracana
Funkcja zwraca obiekt funkcyjny opakowujący metodę.
Opis szczegółowy
Funkcja tworzy obiekt funkcyjny opakowujący wskaźnik na metodę. Przy wywołaniu, obiekt funkcyjny pobiera wskaźnik na obiekt, na którym ma zostać wywołana metoda. Taki obiekt może następnie zostać użyty, na przykład, w algorytmach biblioteki standardowej.
Przykład
#include <iostream>
#include <functional>
#include <algorithm>
class C {
public:
void sth() {
std::cout << "Metoda wywolana!" << std::endl;
}
};
int main() {
C * tab[ 5 ];
for( int a = 0; a < 5; ++a ) tab[ a ] = new C;
std::for_each( tab, tab + 5, std::mem_fun( & C::sth ) );
for( int a = 0; a < 5; ++a ) delete tab[ a ];
}
Standardowe wyjście programu
Metoda wywolana!
Metoda wywolana!
Metoda wywolana!
Metoda wywolana!
Metoda wywolana!
Zagadnienia powiązane
ptr_fun | Zwraca obiekt funkcyjny opakowujący funkcję. (szablon funkcji) |
---|
mem_fun_ref | Zwraca obiekt funkcyjny opakowujący metodę (wersja dla referencji). (szablon funkcji) |
---|
Linki zewnętrzne
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.