Wskaźnik do tablcy dwywymiarowej z pamięcią dynamiczną. Potrzebna drobna poprawka

0

witam.
Mam problem z pamięcią dynamiczna. Chcę zrobić wskaźnik do tablicy dwuwymiarowej, która jest w pamięci dynamicznej i posiada wartość przypisaną z konstruktora w klasie. Zamiast zer to się wyświetlają jakieś dziwne numery, pewnie z pamięci. Co trzeba poprawić aby kod działał prawidłowo?

#include <iostream>
#define MAX 5
using namespace std;
class mapa{
public:
	int punkt;
	mapa():punkt(0){};
	mapa(int x){punkt=x;};
};

int main(){
	mapa ***wsk;

	wsk=new mapa**[MAX];
	for(int i=0; i<MAX; i++){
		wsk[i]=new mapa*[MAX];
		for(int j=0; j<MAX; j++){
			wsk[i][j]=new mapa();
		}
	}

	for(int i=0; i<MAX; i++){
		for(int j=0; j<MAX; j++){
			cout << wsk[i][j];
		}
		cout << endl;
	}
	getchar();
	return 0;
} 
0

A gdzie napisałeś metodę odpowiadająca za wypisanie obiektu mapa? Kompilator ma zgadywać JAK taki obiekt wypisać? o_O

0
Shalom napisał(a):

A gdzie napisałeś metodę odpowiadająca za wypisanie obiektu mapa? Kompilator ma zgadywać JAK taki obiekt wypisać? o_O

Wielkie dzięki, czasami ktoś cos zobaczy szybciej a jak godzinami będę patrzeć jak ślepy.

Poprawny kod:

 
#include <iostream>
#define MAX 5
using namespace std;
class mapa{
public:
	int punkt;
	mapa():punkt(1){};
	mapa(int x){punkt=x;};
	void wypisz(){
		cout << punkt;
	}
};

int main(){
	mapa ***wsk;

	wsk=new mapa**[MAX];
	for(int i=0; i<MAX; i++){
		wsk[i]=new mapa*[MAX];
		for(int j=0; j<MAX; j++){
			wsk[i][j]=new mapa();
		}
	}

	for(int i=0; i<MAX; i++){
		for(int j=0; j<MAX; j++){
			wsk[i][j]->wypisz();
		}
		cout << endl;
	}
	getchar();
	return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1