Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Funkcje i argumenty zmiennego typu

Ostatnio zmodyfikowano 2012-07-13 16:28
Autor Wiadomość
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:
C/C++
// Nie tak:
void Funkcja( int arg )
{
    //...
}
// ani tak:
void Funkcja( char * arg )
{
    //...
}
// tylko możemy wpisać char* lub int
Funkcja( 1234 );
Funkcja( "Siemka" );

Myślę że rozumiecie o co chodzi :)
P-59881
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 (» Kurs C++Szablony klas lekcja).
P-59882
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.
P-59883
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?
P-59890
szyx_yankez
» 2012-07-12 14:18:18
C/C++
#include <iostream>


template < class T >
void Wypisz( T Foo )
{
    std::cout << Foo;
}

int main()
{
    Wypisz < int >( 1234 );
    Wypisz < const char *>( "Siemka" );
}
lub
C/C++
#include <iostream>


template < typename T >
void Wypisz( T Foo )
{
    std::cout << Foo;
}

int main()
{
    Wypisz( 1234 );
    Wypisz( "Siemka" );
}

P-59892
skovv
Temat założony przez niniejszego użytkownika
» 2012-07-13 16:28:26
Dzięki wielkie, działa :)
P-59929
« 1 »
  Strona 1 z 1