pomaraqcz Napisano Maj 1, 2015 Zgłoś Share Napisano Maj 1, 2015 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 More sharing options...
webtom Napisano Maj 1, 2015 Zgłoś Share Napisano Maj 1, 2015 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 More sharing options...
pomaraqcz Napisano Maj 1, 2015 Autor Zgłoś Share Napisano Maj 1, 2015 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 More sharing options...
JamesVoo Napisano Maj 1, 2015 Zgłoś Share Napisano Maj 1, 2015 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 mainmenu(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 More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.