Funkcja typu void
Funkcja typu void ... nie zwraca żadnych danych, które można byłoby poddać dalszej obróbce. Funkcja tego typu może wykonywać pewne czynności, ale nie przekazuje informacji zwrotnej. Słowo kluczowe void oznacza "pusty", informuje, że nic nie będzie zwracane.
Mam nadzieję, że ten prosty przykład ( on-line ), będzie dla Ciebie odpowiedzią
#include <iostream>
#include <string>
using namespace std;
void menu_void()
{
std::cout << "Menu void\n---------\n"
<< "1. Dodawanie\n"
<< "2. Odejmowanie\n"
<< "3. Mnozenie\n";
}
string menu_no_void()
{
string menu;
menu = "Menu no void\n------------\n1. Dodawanie\n2. Odejmowanie\n3. Mnozenie\n";
return menu;
}
int main()
{
menu_void();
cout << "\n\n";
cout << menu_no_void();
return 0;
}
Wracając do Twojego kodu, funkcja dodawaniefunkcja, Moim zdaniem nie powinna być typu void, bo wykonuje obliczenia i dobrze by było zwrócić do programu głównego wynik tych obliczeń, czyli
void dodawaniefunkcja (int wyborpier, int wybordrug)
{
wyborpierwszyUzytkownika + wybordrugiUzytkownika;
}
na
int dodawaniefunkcja (int wyborpier, int wybordrug)
{
return wyborpier + wybordrug;
}
druga sprawa domyślam się, że w menu w Twoim kalkulatorze może pojawić się więcej opcji niż tylko dodawanie, odejmowanie i mnożenie, w tym przypadku zapisywanie tego za pomocą if-ów może stać się nieco kłopotliwe i kod może stracić na "czytelności", może rozważ użycie switch-a.
Przykład zastosowania switch-a [ on-line ]
#include <iostream>
using namespace std;
void menu();
int dodawaniefunkcja (int liczba_1, int liczba_2);
int odejmowaniefunkcja (int liczba_1, int liczba_2);
int mnozeniefunkcja(int liczba_1, int liczba_2);
int main()
{
int uzytkownik_liczba_1 = 0, uzytkownik_liczba_2 = 0, uzytkownik_wybor_menu = 0;
// dla celów demonstracyjnych, uzytkownik podał takie liczby
uzytkownik_liczba_1 = 5;
uzytkownik_liczba_2 = 2;
cout << "Uzytkownik podał:\n"
<< "Pierwsza liczba: " << uzytkownik_liczba_1 << "\n"
<< " Druga liczba: " << uzytkownik_liczba_2 << "\n\n";
menu();
cin >> uzytkownik_wybor_menu;
switch(uzytkownik_wybor_menu)
{
case 1: cout << uzytkownik_liczba_1 << " + " << uzytkownik_liczba_2 << " = "
<< dodawaniefunkcja(uzytkownik_liczba_1, uzytkownik_liczba_2);
break;
case 2: cout << uzytkownik_liczba_1 << " - " << uzytkownik_liczba_2 << " = "
<< odejmowaniefunkcja(uzytkownik_liczba_1, uzytkownik_liczba_2);
break;
case 3: cout << uzytkownik_liczba_1 << " * " << uzytkownik_liczba_2 << " = "
<< mnozeniefunkcja(uzytkownik_liczba_1, uzytkownik_liczba_2);
break;
/*
case 4: // itd. ;-)
break;
*/
case 0: cout << "Dziekuje za uzycie programu";
break;
default: cout << "Nie ma takiego dzialania w menu!";
break;
}
return 0;
}
void menu()
{
cout << "Menu\n----\n"
<< "1. Dodawanie\n"
<< "2. Odejmowanie\n"
<< "3. Mnozenie\n\n"
<< "0. Koniec\n\n"
<< "Wybor: ";
}
int dodawaniefunkcja (int liczba_1, int liczba_2)
{
return liczba_1 + liczba_2;
}
int odejmowaniefunkcja (int liczba_1, int liczba_2)
{
return liczba_1 - liczba_2;
}
int mnozeniefunkcja(int liczba_1, int liczba_2)
{
return liczba_1 * liczba_2;
}