moja klasa CPoint

0
<cpp> #include <iostream> #include <cstdlib>

class CPoint
{
public:
int X, Y;
CPoint(int x, int y);
void SetPos(int x, int y);

};

CPoint::CPoint(int x, int y)
{
SetPos(x, y);
}

void CPoint::SetPos(int x, int y)
{
X = x;
Y = y;
}

int main(void)
{
system("CLS");

CPoint *point;
cout << point->X << " " << point->Y;

system("PAUSE > NUL");
return 0;

}

Dlaczego mogę wykonywać operacje na wskaźniku do klasy CPoint skoro ten wskaźnik nie jest zainicjwany, nie wskazuje na nic, nie ma przydzielonej pamięci ??? :|

0

Wskaznik nie ma przydzielonej pamieci i nie jest zainicjalizowany, to fakt, ale na cos jednak pokazuje: jest to jakis przypadkowy (lub nie) obszar pamieci, ktory moze byc wypelniony jakimis liczbami ktore sa interpretowane jako wspolrzedne punktu. Uzyj w main metody SetPos a zobaczysz co sie stanie (acces violation).

0

Nie wywali Acces violation; jak użyjesz point->SetPos(0, 123) a potem cout << point->X << " " << point->Y; to na ekranie zobaczysz: 0 123 [???]

0

A jakiego kompilatora uzywasz? Te stare borlanda pod dosa nie wyrzucaja takich bledow ale pozniej moze cos byc nie tak, acces violation np pod visuale.

0

Używam Dev-C++ ale próbowałem również na Borland C++ 6.0.

0

Banalny blad, ale się się zdarza NUL?? a nie NULL</image>

0

Przyjrzyj się dokładnie gdzie jest NUL

0

byc moze kompilator tworzy tymczasowy obiekt tej klasy na czas zycia funkcji main

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