Zmiana wartości zmiennej poprzez konstruktor w funkcji zaprzyjaźnionej
Ostatnio zmodyfikowano 2015-11-18 19:09
radek024 Temat założony przez niniejszego użytkownika |
Zmiana wartości zmiennej poprzez konstruktor w funkcji zaprzyjaźnionej » 2015-11-18 18:42:06 Witam, mam problem związany z losowaniem/wpisywaniem nowej wartości dla właściwości klasy w kontruktorze. Uczę się funkcji zapryzjaźnionych i chcę napisać pianino, które ma wspólną funkcję grającą nuty. #include <iostream> #include <cstdlib> #include <windows.h> #include <ctime> using namespace std;
class Pianista;
class Piano { int nuta; public: Piano() { nuta = 15000; } Piano( char zklaw ) { cout << "Podaj czestotliwosc zagranego dzwieku: "; cin >> nuta; } Piano( string losowanko ) { nuta = rand() % 700 + 250; } friend void grajnuty( Piano & forte, Pianista & radek ); };
class Pianista { int ilnut; public: Pianista() { ilnut = 20; } Pianista( char zklaw ) { cout << "Podaj ilosc zagranych dzwiekow: "; cin >> ilnut; } Pianista( int losuj ) { ilnut = rand() % 50 + 1; cout << "Zagranych zostanie " << ilnut << " nut." << endl; } friend void grajnuty( Piano & forte, Pianista & radek ); };
void grajnuty( Piano & granie, Pianista & radek ) { cout << "Ilosc nut: " << radek.ilnut << endl; for( int i = 0; i < radek.ilnut; i++ ) { Beep( granie.nuta, 1000 ); cout << "czestotliwosc: " << granie.nuta << endl; } }
int main( int argc, char ** argv ) { srand( time( NULL ) ); Piano forte = Piano( "losuje" ); Pianista radek = Pianista( 1 ); grajnuty( forte, radek ); return 0; } Ktoś może mi powiedzieć, jak mogę zrobić losowanie/wpisywanie nowej wartości pod właściwość nuta w klasie Piano? Wiem czemu nie działa(wartość jest przypisywana wyłącznie raz przy uruchomieniu konstruktora), ale nie mam pojęcia jak to naprawić. |
|
michal11 |
» 2015-11-18 19:09:53 Dopisz metodę która będzie ci ustawiała konkretną wartość. |
|
« 1 » |