Mają w nim być 3 funkcje, w tym jedna main, która wywoła każdą z pozostałych dwukrotnie.
Robię wszystko jak było wyjaśnione w książce, czyli najpierw prototypy funkcji, potem w funkcji main przywołuję pozostałe funkcje, definiuje je i nic. Może diabeł tkwi w szczegółach. Nie za dobrze wiem kiedy używać int xxx(int);, in xxx(void);, czy void xxx(int);, itp. Tak samo z tymi wyrazami w nawiasach na końcu funkcji, że raz jest np. gitara(git), a innym razem gitara(int g).
Wiem jak przypisać do czegoś liczbę, np. pow = 10, ale jak to zrobić z wyrazami.
Trochę zawiłe jest pewnie to, co napisałem, ale nie mam wyjścia. Chcę się uczyć i muszę jakoś przez wszystko przebrnąć.
Tak to nie zadziała. Jest tu kilka “Grzechów głównych”:
Do int’a próbujesz przypisać stringa.
Parametr wejściowy jest widoczny tylko w ciele funkcji. Do zwracania wyników działania funkcji przez jej parametry można używać refencji, ale do tego jeszcze długa droga
Nie wywołujesz nigdzie funkcji.
W definicji funkcji nie używamy “;” po nazwie funkcji
A i polecam zainteresować się książką “Symfonia C++” Jerzego Grębosza.
@up: wersję Standard, bo jeszcze będzie gotów zainstalować prehistorycznego Borlanda.
Swoją drogą to albo masz stary kompilator, albo borlanda: GCC ani VC nie przepuszczą takiego przypisania. Poza tym nadpisujesz nazwy funkcji nazwami zmiennych tracąc tym samym dostęp do nich.
void przed nazwą funkcji to typ funkcji. void gdy funkcja nie ma nic zwracać.
Drugie void w nawiasie oznacza że funkcja nie ma argumentów, stosowane kiedyś w C. W C++ dopuszczalne w starych kompilatorach. Brak tego void oznaczało że funkcja może mieć wiele argumentów nieznanych typów. W C++ używa się trzykropka.
Poprawne w C, ale nie w C++ (W C++ funkcja bez niczego w nawiasach jest bezargumentowa):
void foo(){
}
int main(){
foo(2,3,4,5);
return 0;
}
Poprawne w C++, niepoprawne w C (C nie rozpoznaje trzykropka):
void foo(...){
}
int main(){
foo(2,3,4,5);
return 0;
}
Niepoprawne ani w C, ani w C++ (błąd kompilacji: za dużo użytych argumentów w wywołaniu funkcji)
void foo(void){
}
int main(){
foo(2,3,4,5);
return 0;
}