Funkcje i argumenty zmiennego typu
Ostatnio zmodyfikowano 2012-07-13 16:28
skovv Temat założony przez niniejszego użytkownika |
Funkcje i argumenty zmiennego typu » 2012-07-12 10:20:51 Witam. Dawno nic tu nie pisałem, dawno też nie programowałem, ostatnio jednak zacząłem się troszkę bawić. Mam pewne pytanie: czy jako argument funkcji można podać 2-3 typy zmiennej? Tzn: void Funkcja( int arg ) { }
void Funkcja( char * arg ) { }
Funkcja( 1234 ); Funkcja( "Siemka" );
Myślę że rozumiecie o co chodzi :) |
|
xevuel |
» 2012-07-12 10:25:40 Tak jak napisałeś - muszą to być dwie funkcje, jedna przyjmująca char * , a druga int . Ich kod może być przecież taki sam, z uwzględnieniem różnic (np. char * nie dodasz do siebie za pomocą +). Drugie wyjście, to użycie szablonów ( Szablony klas). |
|
szyx_yankez |
» 2012-07-12 10:27:18 Można, tworzysz sobie wtedy dwie przeciążone wersje funkcji, tak jak napisałeś. Możesz też podejść z innej strony i zastosować szablony funkcji. |
|
skovv Temat założony przez niniejszego użytkownika |
» 2012-07-12 14:08:41 Szablony? Hmm wszedłem w ten link i nie widzę zastosowania w mojej sytuacji. Tzn chyba o to chodzi, ale nie było pokazane jak podać argument itp... Mógłby ktoś napisać drobny przykład? |
|
szyx_yankez |
» 2012-07-12 14:18:18 #include <iostream>
template < class T > void Wypisz( T Foo ) { std::cout << Foo; }
int main() { Wypisz < int >( 1234 ); Wypisz < const char *>( "Siemka" ); }
lub
#include <iostream>
template < typename T > void Wypisz( T Foo ) { std::cout << Foo; }
int main() { Wypisz( 1234 ); Wypisz( "Siemka" ); }
|
|
skovv Temat założony przez niniejszego użytkownika |
» 2012-07-13 16:28:26 Dzięki wielkie, działa :) |
|
« 1 » |