Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Tworzenie nowych obiektów (graczy) w klasie.

Ostatnio zmodyfikowano 2017-04-20 08:38
Autor Wiadomość
Alex_Cooperek
Temat założony przez niniejszego użytkownika
» 2017-04-18 19:36:16
Niedokońca wiem jak mogę nazywać graczy klasie Gracz, kiedy liczbę danych obiektów podam dopiero klasie Oczko? By, poźniej działała mi w klasie Oczko w metodzie graj()?
P-160256
michal11
» 2017-04-18 19:47:25
C/C++
class Gracz
{
    vector < Karta *> tablica;
    string nazwa_gracza;
public:
    Gracz();
    Gracz( const std::string & nazwa )
        : nazwa_gracza( nazwa )
    {
        //reszta rzeczy z konstruktora
    }
   
    void ustawNazwe( const std::string & nazwa )
    {
        nazwa_gracza = nazwa;
    }
   
};

C/C++
Oczko::Oczko()
{
    for( int i = 0; i < liczba_graczy; ++i )
    {
        g[ i ] = new Gracz;
        c[ i ] = new Czlowiek;
        cout << "Podaj nazwe swojego gracza: ";
        cin >> nazwa_gracza;
        tablica_nazw[ i ].ustawNazwe( nazwa_gracza );        
    }
}

mając konstruktor ze stringiem można też zrobić tak:
C/C++
Oczko::Oczko()
{
    for( int i = 0; i < liczba_graczy; ++i )
        {
        c[ i ] = new Czlowiek;
        cout << "Podaj nazwe swojego gracza: ";
        cin >> nazwa_gracza;
        g[ i ] = new Gracz( nazwa_gracza );        
    }
}
P-160257
Alex_Cooperek
Temat założony przez niniejszego użytkownika
» 2017-04-19 06:15:25
Wybacz, chciałabym się zapytać i te 2 linijki, tutaj tworzy się dwa konstruktory Gracz, a co oznacza ten ":", u niego nie powinno coś być po lewej stronie?
C/C++
Gracz();
Gracz( const std::string & nazwa )
    : nazwa_gracza( nazwa )
P-160262
darko202
» 2017-04-19 09:43:27
to o co pytasz wynika ze składni języka
przeczytaj
https://msdn.microsoft.com​/pl-pl/library/s16xw1a8.aspx
w szczególności -"Konstruktory jawne"
P-160265
Alex_Cooperek
Temat założony przez niniejszego użytkownika
» 2017-04-19 09:54:07
Aha, czyli mają powstać dwa konstruktory jeden pusty, a drugi jawny ?
P-160266
karambaHZP
» 2017-04-19 09:59:11
Konstruktorów może być tyle ile wymaga sytuacja, choć najczęściej stosuje sie rule of three, five, zero, a ten dwukropek oznacza początek listy inicjalizacyjnej konstruktora (zalecane rozwiazanie).
P-160267
Alex_Cooperek
Temat założony przez niniejszego użytkownika
» 2017-04-19 10:03:05
Ok, rozumiem. Zrobiłam wszystko co radziłeś, tylko nie wiem czemu pojawiły mi się te trzy błędy, co one mogą oznaczać?
 błąd: extra qualification 'Gracz::' on member 'dodaj_nazwe' [-fpermissive]
     void Gracz::dodaj_nazwe(const string &nazwa);
      
 błąd: 'void Gracz::dodaj_nazwe(const string&)' cannot be overloaded
     void dodaj_nazwe(const string &nazwa);
 
 błąd: with 'void Gracz::dodaj_nazwe(const string&)'
     void Gracz::dodaj_nazwe(const string &nazwa);
          ^         ^   ^
P-160268
michal11
» 2017-04-19 10:44:26
wstaw kod którego dotyczy błąd
P-160269
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona