Reklama
Pokazuje wyniki od 1 do 5 z 5

Temat: [C++] Problem z tworzeniem i wrzucaniem do tabeli obiektu klasy w pętli

  1. #1
    Avatar Dio Paladin
    Data rejestracji
    2007
    Wiek
    28
    Posty
    959
    Siła reputacji
    17

    Domyślny [C++] Problem z tworzeniem i wrzucaniem do tabeli obiektu klasy w pętli

    Kod:
    void Oczko::utworzGraczy()
    {
    	int iloscLudzi = 0;
    	int iloscKomputerow = 0;
    	string imie;
    	int i = 0;
    	cout << "Witaj w grze oczko. Zanim rozpoczniesz wybierz graczy" << endl;
    	cout << "Ilu graczy (steruje czlowiek) chcesz dodac (maksymalnie 8)? ";
    	cin >> iloscLudzi;
    	while (!cin.good())
    	{
    		cout << "Podano nieprawidlowa opcje. Wprowadz dane jeszcze raz: ";
    		cin.clear();
    		cin.sync();
    		cin >> iloscLudzi;
    	}
    
    	if (iloscLudzi>8)
    		iloscLudzi = 8;
    	for (; i<iloscLudzi; i++)
    	{
    		tablicaGraczy[i] = new Czlowiek;
    		cout << "Podaj imie gracza numer " << i + 1 << ": ";
    		cin >> imie;
    		tablicaGraczy[i].ustawImie(imie);
    	}
    	if (iloscLudzi<8)
    	{
    		cout << "Ile komputerow (steruje S.I.) chcesz dodac (maksymalnie " << 8 - iloscLudzi << ")? ";
    		cin >> iloscKomputerow;
    		while (!cin.good())
    		{
    			cout << "Podano nieprawidlowa opcje. Wprowadz dane jeszcze raz: ";
    			cin.clear();
    			cin.sync();
    			cin >> iloscKomputerow;
    		}
    
    		if (iloscKomputerow + iloscLudzi>8)
    			iloscKomputerow = 8 - iloscLudzi;
    		for (; i<iloscKomputerow + iloscLudzi; i++)
    		{
    			tablicaGraczy[i] = new Komputer;
    			imie = "S.I. #";
    			imie.append(1, i - iloscLudzi + '1');
    			tablicaGraczy[i].ustawImie(imie);
    		}
    	}
    
    	iloscGraczy = iloscKomputerow + iloscLudzi;
    
    }
    Funkcja z klasy obsługującej całą grę, ma za zadanie dodać graczy żywych jak i komputerowych do tablicy graczy, problem jest z pętlą w przypadku Człowieka i Komputera (tablicaGraczy[i] = new Czlowiek; | tablicaGraczy[i] = new Komputer;). Wyrzuca mi przy tych linijkach taki błąd:
    error C2679: binary '=': no operator found which takes a right-hand operand of type 'Czlowiek *' (or there is no acceptable conversion)
    Taki sam błąd wyrzuca w przypadku dodania Komputera do tablicy graczy. Co robię źle albo o czym znowu zapomniałem?

  2. #2
    Avatar Chels
    Data rejestracji
    2013
    Wiek
    30
    Posty
    2,824
    Siła reputacji
    13

    Domyślny

    tablica graczy musi byc tablica wskaznikow zebys mogl uzyc new
    i wtedy nie uzywasz operatorow kropki tylko ->

  3. Reklama
  4. #3
    Avatar Comxaa
    Data rejestracji
    2015
    Położenie
    Comxaa
    Wiek
    32
    Posty
    649
    Siła reputacji
    10

    Domyślny

    www.cplusplus.com/reference/vector/vector/

    #include <vector>
    using namespace std;

    vector <Czlowiek> tablicaGraczy; //deklaracja kontenera przechowujacego obiekty Czlowiek
    Czlowiek nowyCzlowiek; //tworzysz sobie obiekt klasy Czlowiek
    tablicaGraczy.push_back(nowyCzlowiek); //dorzucasz sobie czlowieczka na koniec wektorka
    tablicaGraczy[0].metodaKlasyCzlowiek(); //w taki sposob się odnosisz do obiektu z indeksem 0

  5. #4
    Avatar Dio Paladin
    Data rejestracji
    2007
    Wiek
    28
    Posty
    959
    Siła reputacji
    17

    Domyślny

    To są moje deklaracje w pliku nagłówkowym:
    Kod:
    public:
      Oczko ();
      virtual ~Oczko();
      void utworzGraczy();
      void graj();
    private:
      Gracz *tablicaGraczy;
      int iloscGraczy;
      Talia *talia;
    Wydaje mi się, że jest ok, po zastąpieniu operatora kropki na -> wyrzuca mi z kolei błąd i sam każe mi używać kropki.

    //Pana wyżej nie było, zaraz to zbadam
    Ostatnio zmieniony przez Dio Paladin : 27-04-2016, 21:22

  6. #5
    Avatar Chels
    Data rejestracji
    2013
    Wiek
    30
    Posty
    2,824
    Siła reputacji
    13

    Domyślny

    int n =10;
    Gracz **tablicaGraczy = new Gracz*[n];

    tablicaGraczy[i] = new Gracz;

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. TORGOWY TORG TYPER 2018 - rozmowy ogólne (LINK DO TABELI W 1 POŚCIE)
    Przez Crus w dziale Typer Mistrzostw Świata 2018
    Odpowiedzi: 449
    Ostatni post: 19-07-2018, 01:43
  2. [CPP in QT] Filtrowanie listy/tabeli
    Przez Exequt'er w dziale Programowanie
    Odpowiedzi: 7
    Ostatni post: 07-12-2017, 23:42
  3. Macro / Tasker z funkcja petli i labeli
    Przez Michauu w dziale Sprzęt i oprogramowanie
    Odpowiedzi: 0
    Ostatni post: 28-10-2016, 19:46
  4. [Bash] Program na kolokwium, pare petli
    Przez cowboy w dziale Programowanie
    Odpowiedzi: 8
    Ostatni post: 30-01-2014, 00:51
  5. ArrayList w Javie, edycja obiektu.
    Przez coke w dziale Sprzęt i oprogramowanie
    Odpowiedzi: 0
    Ostatni post: 10-10-2012, 22:08

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •