Witam.
Mam kod, w którym alokuje pewną ilość obiektów, a potem przeprowadzam na nich pewne operacje na metodach. I mam problem, bo chyba nie do końca rozumiem zasady działania. W komentarzach napisałem jak ja rozumiem owy fragment kodu:
#include <conio.h>
#include "stdafx.h"
class Klasa
{
int x;
public:
Klasa(int xx = 0) { x = xx; }
void stworz()
{
cin >> x;
}
void wyswietl()
{
cout << x << endl;
}
};
int main()
{
Klasa *obiekt = new Klasa[2]; // alokuje dwa obiekty
obiekt->stworz(); //przypisuje wartosc "x" obiektowi peirwszemu
obiekt++; // przesuwam wskaźnik na kolejny obiekt
obiekt->stworz(); // przypisuje wartosc "x" drugiemu obiektowi
obiekt = 0; // cofam wskanik do pcozatku
obiekt->wyswietl(); // wyswietlam wartosc "x" obiektu pierwszego
obiekt++; // przesuwam wskaznik na kolejny obiekt
obiekt->wyswietl(); // wyswietlam wartosc "x" obiektu drugiego
delete[] obiekt; // usuwam obiekt
getch();
return 0;
}
Czy ja dobrze rozumuje?? Jeśli nie, to prosiłbym o poprawienie komentarzy :D
A teraz do rzeczy. Piszę to, ponieważ kod nie działa w tym zapisie. Po podaniu wartości zmiennej obu obiektom, mam problem z ich wyświetleniem. Wyskakuje takie info:
Nie mam zielonego pojęcia co jest grane. Może po prostu źle rozumiem odwoływanie się do metod klasy przez wskaźnik. Tak czy inaczej, program nie chce wyswietlic wartosci obiektow ktore podam.