Wypisywanie obiektu klasy

0

Witam, oto mój kod:

#include <iostream>
using namespace std;

enum TWyglad
{
Tree = 'T',
None = ' ',
Lava = '~'
};

class CObiekty
{
public:

int ID;
TWyglad obiekt;
int kolizja;
int stan;

};

int main()
{
CObiekty mapa[20][20];
CObiekty tree,none,lava;

tree.ID = 0;
tree.kolizja = 1;
tree.obiekt = Tree;
tree.stan = 0;

none.ID = 1;
none.kolizja = 0;
none.obiekt = None;
none.stan = 0;

lava.ID = 2;
lava.kolizja = 0;
lava.obiekt = Lava;
lava.stan = 1;

mapa[0][0] = lava;
cout << mapa[0][0];

}

Chciałem by po wypisaniu zawartości mapa[0][0] na ekranie pojawił się symbol który przypisałem obiektowi, oraz posiadał przypisane mu wartości, jednak coś nie działa. Wyskakuje błąd kompilacji.

1

A kompilator rozumiem ma zgadywac w jaki sposób wypisac obiekt klasy CObiekty? Może łaskawie napiszesz funkcję która pokazuje jak to zrobić? Rozumiem że dysponujesz genialnym kompilatorem który potrafi wybrac z 4 pól klasy akurat to które ty byś chciał wypisać? o_O

0

Operator << można przeciążać tak jak to zrobiono dla klas strunieni.

0

ostream& operator<<(ostream &out, const CObiekty &ob)
{
out << ob.ID << ", " << ob.obiekt << ", " << ob.kolizja << ", " << ob.stan << endl;
}

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