[ Alisa @ 19.01.2004. 08:40 ] @
ne znam bas kako da objasnim problem. Imam dvije klase koje su poredane po slijedecem rasporedu:
public __gc class SocketClass
{
public: static Forma *form; // ovdje mi javlja gresku da ne prepoznaje ovu klasu
//Konstruktor
public: SocketClass();
}


public __gc class Forma : public System::Windows::Forms::Form
{
public: static SocketClass *pSocket;// ovo prepoznaje ok
}

Kad promjenim redoslijed klasa onda je obrnuto prepoznaje Formu, a ne prepoznaje pSocket. Je li moguce da ne mogu napraviti pokazivace na objekte jedne klase na drugu obrnuto, tj da se moram kretati samo u jednom smjeru.

[ filmil @ 19.01.2004. 08:56 ] @
Citat:
Kad promjenim redoslijed klasa onda je obrnuto prepoznaje Formu, a ne prepoznaje pSocket. Je li moguce da ne mogu napraviti pokazivace na objekte jedne klase na drugu obrnuto, tj da se moram kretati samo u jednom



Ne možeš to da uradiš na način na koji si opisala. Potrebna ti je tzv.
forward deklaracija, koja se izvodi tako što pre nego što deklarišeš
prvu klasu staviš

Code:

class Forma;


Time „obećaš“ kompajleru da ćeš da deklarišeš klasu Forma negde dalje u
kodu. Ovako deklarisane klase se mogu pre definicije pojavljivati samo
kao pokazivači. Dakle dozvoljeno je imati Forma* ali ne i recimo Forma&,
sve dok se zaista i ne pojavi deklaracija klase Forma.

f
[ Alisa @ 20.01.2004. 08:14 ] @
Hvala ti puno puno, rijesio si mi veliki problem.
[ Dragi Tata @ 20.01.2004. 16:07 ] @
Citat:
filmil:
Dakle dozvoljeno je imati Forma* ali ne i recimo Forma&,
sve dok se zaista i ne pojavi deklaracija klase Forma.


Dozvoljeno je i Forma& f, ali ne Forma f.