Skocz do zawartości

argumenty funkcji


Polecane posty

Może ktoś mi wytłumaczyć jak to jest argumentami funkcji? Najprostszy przykład, funkcja która sumuje 2 liczby, które podało się wcześniej, np;

int dodawanie(int a, int b)

int main()

{

int a, b;

cin>>a;

cin>>b;

cout<<dodawanie(a,b);

}

dodawanie(int a, int b)

{return a+b;}

I takie coś nie zadziała, pojawia się komunikat, że a i b nie zostały zadklarowane. Jak to obejść/zrobić dobrze?

Link do komentarza
Udostępnij na innych stronach

int dodawanie(int a, int b)

To jest deklaracja funkcji - na tym etapie informujesz kompilator, że gdzieś dalej będzie zdefiniowana funkcja przyjmująca dwa intowe parametry (tak przy okazji, to nie musisz podawać ich nazw) i zwracająca kolejnego inta. Deklaracja standardowo musi się kończyć średnikiem (u Ciebie go zabrakło).

dodawanie(int a, int b)
{return a+b;}

To jest definicja funkcji. Mimo że sama funkcja może być identyfikowana po nazwie i typie parametrów, to należy podać typ zwracany (czyli przed dodawanie powinien pojawić się typ int).

Link do komentarza
Udostępnij na innych stronach

Dziękuje za odpowiedź, o deklaracji i definicji wiedziałem, przy tej drugiej faktycznie zapomniałem dać int. Ale przez pośpiech źle zapisałem swój problem. Ten kod który napisałem za 1 razem oczywiście zadziała jeżeli dam int przy definicji.

Chodziło mi o sytuacje, gdy w main dam jeszcze funkcje menu, z której będę wybierał jakie działanie ma się odbyć, i wyświetli wynik, np:

void menu()

{

tu możliwości wyboru działania np. z wykorzystaniem switch...case i po dokonaniu wyboru, że chcemy dodać to:

cout<<dod(a,b);

}

czyli, program ogólnie wyglądałby int main()

{int a, b;

cin>>a;

cin>>b;

menu();

}

I tu już program nie działa, przy kompilacji w menu przy cout<<dod(a,b) pokazuje, że a i b są niezadeklarowane.

Link do komentarza
Udostępnij na innych stronach

Musisz jakoś przekazać argumenty do funkcji.

Masz w ciele głównym programu, ale nie masz żadnych w funkcji menu.

W Twoim przykładzie deklaracja funkcji

void menu(int a, int b)

I potem w main

menu(a, b)

Oczywiście to nie są te same zmienne, tylko je przekazujesz.

Możesz zapisać

void menu(int a, int b)

i w programie

menu(c, d)

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

  • Kto przegląda   0 użytkowników

    • Brak zalogowanych użytkowników przeglądających tę stronę.
×
×
  • Utwórz nowe...