gli attibuti non esistono nelle classe c++, si chiamano membri.
Comunque non puoi farlo perchè il compilatore non sa quanta memoria allocare per il membro x della classe A. Se vuoi tenere tutto nello stesso file, come hai scritto, allora devi usare un riferimento alla classe B come di seguito
Scrivi però prima del membro x class B *codice:class A { class B *x; //qui mi da errore di tipo non definito public: A() { } ~A(){ } }; class B { A y; //qui da errore se dichiaro prima B di A e ovviamente in questo caso non lo da sopra public: B() { } ~B(){ } }; int main () { return (0); }
Se vuoi utilizzare un oggetto della classe B anzichè un riferimento devi usare più file headers, in uno definisci la classe A e nell'altro la classe B
ciao
sergio