Problem z argumentami funkcji.
Ostatnio zmodyfikowano 2014-11-22 21:46
Max_150 Temat założony przez niniejszego użytkownika |
Problem z argumentami funkcji. » 2014-11-22 20:43:40 Witam,jak w nazwie tematu,problem z argumentami funkcji.Z ,,argumentami'',bo gdy argument jest jeden,wszystko gra,ale to w oddzielnym programie,gdyz ten obecny wymaga conajmniej dwóch.jest to moja około 10h nauki,wieck wyrozumiałośc będzie przydatna.Rozdzieliłem program na dwa pliki.Main cpp,i nazwa funkcji(mnozenie.h).Poniewaz wlaśnie tego sie teraz uczę. Problem jest taki,że gdy wysyłam wiecej jak jeden argument,mam bład: mnozenie.h|8|error: declaration of 'float liczba_1' shadows a parameter| mnozenie.h|9|error: declaration of 'float liczba_2' shadows a parameter| Nie znam dobrze angielskiego,ale ,,declaration'' oznacza chyba to,ze liczba nie jest zdeklarowana.A przecież wartośc przybywa z funkcji main.O tu: <<<<< mnozenie(wynik, liczba_1, liczba_2); >>>>> Wie ktos o co biega? MAIN.CPP #include <iostream> #include "mnozenie.h" #include <cstdlib>
using namespace std;
float wynik; float liczba_1; float liczba_2; int menu; int main() { cout << "Mnozenie-1" << endl; cout << "Dzielenie-1" << endl; cout << "Dodawanie-1" << endl; cout << "Odejmowanie-1" << endl; cin >> menu; if( menu == 1 ) { cout << "Wpisz 1 liczbe:" << endl; cin >> liczba_1; cout << "Wpisz 2 liczbe:" << endl; cin >> liczba_2; mnozenie( wynik, liczba_1, liczba_2 ); cout << "Wynik: " << mnozenie( liczba_2 ) << endl; } return 0; }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mnozenie.h #include <iostream> #include <cstdlib>
using namespace std;
float mnozenie( float mn, float liczba_1, float liczba_2 ) { return mn = liczba_1 * liczba_2; }
|
|
Monika90 |
» 2014-11-22 20:50:12 mnozenie.h|8|error: declaration of 'float liczba_1' shadows a parameter| mnozenie.h|9|error: declaration of 'float liczba_2' shadows a parameter|
|
To nie możliwe żeby twój program miał taki błąd. Pokazałeś nam inny program niż kompiluesz. Kod na forum umieszczaj pomiędzy znacznikami [cpp][/cpp] |
|
kisi69 |
» 2014-11-22 21:02:37 A po kiego ci ten parametr mn wywal to bo nie jest w sumie do niczego potrzebne
Pozatym: masz takie cos float mnozenie( float mn, float liczba_1, float liczba_2 ) a używasz tak mnozenie( liczba_2 )
polecam zrobić klasę i konstruktory z różną liczbą parametrów. |
|
Max_150 Temat założony przez niniejszego użytkownika |
» 2014-11-22 21:46:28 Właśnie sie kapłem.CodeBlocs compiluje mi często wczesniej zamkniete pliki.Dopiero po zamknieciu i otwarciu,compilator,compiluje obecny plik.
Problem rozwiązałem zamieniając:
mnozenie(liczba_2);
na
mnozenie(wynik, liczba_1, liczba_2);
PS:Nie wiedziałem że do cout<<,nalezy wpisac wszystko,a funkcja return zwraca wynik,i wyswietla go.Myslałem ze w ramach takiego rozumowania należy wpisac tylko
mnozenie(wynik);(z racji iz to tylko jest zwracane)
a tu sie okazało ze
mnozenie(wynik, liczba_1, liczba_2);
jest prawidłowe. |
|
« 1 » |