Mam taki problem. Stworzylem tablice 2 wymiarowa, ktora tworzy plansze zlozona z obiektow, tworzonych konstruktorem domniemanym.Teraz chcialbym sie odwolac do konkretnych obiektorw mojej tablicy np :
tablica [5][5] celem podmiany istniejacych na nowe. Staram sie wykombinowac jak to zrobic. Mysle nad dwoma metodami. Albo funkcja aktualizacyjna, albo podmiana konstruktora domniemanego na zywkly.
Głowny problem polega na tym, iz nie wiem jak w tablicy wielowymiarowej moge odwolac sie do konretnej pozycji celem zmiany wartosci sedziacego tam obiektu. Powiem tylko ze jesli w petlach for zmienie obiekt () na obiekt(1), wszystkie elementy zmieniaja sie z "." na "x", zgodnie z dzialaniem konstruktorow. Nie wiem jak zmieic tylko jeden z nich :/
Ponizej przedstawiam kod :
#include <iostream>
#include <string.h>
using namespace std;
//klasy/////////////////////////////
class obiekt
{
int mnozenie;
char nazwa[15];
public:
int poz_x,poz_y;
int liczba;
int ilosc;
obiekt ( int a);
obiekt ();
void aktualizuj() /*jedna wersja rozwiazania, poprzez funkcje*/
{
strcpy(nazwa,"x");
cout << nazwa;
mnozenie=1;
}
};
obiekt::obiekt(int a):mnozenie(a) /*druga wersja rozwiazania poprzez konstruktor*/
{
strcpy (nazwa ,"x");
cout << nazwa;
mnozenie=1;
}
obiekt::obiekt()
{
strcpy (nazwa ,".");
cout << nazwa;
mnozenie=0;
}
int main()
{
obiekt tablica [20][20];
cout << endl;
cout << "\n_____________";
cout << "\n Plansza : \n";
for (int i=0;i<20;i++)
{
for (int j=0;j<20;j++)
{
tablica[i][j]=obiekt();
}
cout << "\n";
}
cout << "____________";
cout << "\n\nLiczba obiektow :";
cout << "\nLiczba wykonan petli :";
cout << "\n\n\n\n";
tablica[5][5].aktualizuj(); /*nie mam pojecia jak sie odwolac do tego obiektu :/*/
}
O i jeszcze jedno, po skompilowaniu pojawiaja mi sie jakby 2 te same wersje tablicy, z tym ze jedna jest ciagiem obiektow nie poukladanych tak jak w tej drugiej. Wydaje mi sie ze te tablice pokazuja te same obiekty i zmiany pojawiajace sie na jednej beda takie same jak na drugiej. Jednym slowem sa identyczne ?