Questione : come riassegnare un membro del codice categoria in c++ (ignorare il relativo valore dall'indicatore)

ciao, il

i pensa che il titolo non sia molto chiaro. lasciarlo spiegare: dire, io hanno 2 class= " i lineNumbers " >
1 del >

codice categoria B
{
pubblico:
	int BNum;
};

codice categoria A
{
pubblico: 
	int ANum;
	*bMember di B;
	A (int numerico)
	{
		ANum = numerico;
		bMember = nuova B ();
		bMember->BNum = +10 numerici;
	}
	A (bb di B*): bMember (bb)
	{
		ANum = bMember->BNum -20;
	}
	~A ()
	{
		bMember di cancellazione;
	}
}; il class= >

and di
1 del >
*inta di int, *intb;
*aa1 = nuovo A (20);
intb = &aa1->ANum;
inta = nuovo int (100);
*intb = *inta;
cout << aa1->ANum << endl;
cout << *inta << endl;
cout << *intb << endl;l'uscita " libera " di >
the del class= di
1 del >
100
100
le cose " libere " di >
but del class= 100
1 del >
*ba di B, *bb, *bc;
bc = nuova B (); bc->BNum = 1000;
A* aa2 = nuovo A (bc);
bb = aa2->bMember;
sedere = nuova B (); ba->BNum = 200;
*bb = *ba;
cout << aa2->ANum << endl;
cout << ba->BNum << endl;
cout << bb->BNum << endl;
cout << bc->BNum << endl;class= >

output di
1 del >
1000
200
200
200

even che il valore ha tenuto bc dai cambiamenti. ma niente accade a motivo di bMember.
the per usando gli indicatori fittizi che, nella mia applicazione, realmente utilizzi i vettori degli indicatori ad un campo di un certo tipo, del mio codice categoria principale. come posso ignorare questo campo using l'indicatore contenuto nel mio vettore. forse il problema si presenta a causa del mio disegno difettoso, ma sono curioso circa la situazione qui sopra. (1000.200.200…)osservazioni appreciated.
thanks del
any class= del

Risposta : come riassegnare un membro del codice categoria in c++ (ignorare il relativo valore dall'indicatore)

>> persino il valore ha tenuto bc dai cambiamenti. ma niente accade a bMember.

Naturalmente qualcosa accade a bMember: lo scrivete sopra qui:

>> *bb = *ba;

punti di bb allo stesso oggetto di B di aa2->bMember, IE. entrambe il punto all'oggetto quel bc indica.

Così, quando dereference l'indicatore di bb (*bb), ottenete quell'oggetto (lo stesso oggetto che tutti gli tre indicatori accennati indicano).
Quando allora assegnate il *ba a quell'oggetto, lo scrivete sopra con i nuovi dati. Ciò significa che tutti e tre le hanno accennato che gli indicatori ora indicheranno quell'oggetto scritto sopra.



Devo dire comunque che state facendo un certo roba realmente pazzesco qui. Che cosa è il punto di tutto questo codice? Sembra altamente soggetto a errori e complicato inutilmente.
Altre soluzioni  
 
programming4us programming4us