Question : comment attribuer à nouveau un membre de classe dans c++ (dépasser sa valeur par l'indicateur)

bonjour, le

i pensent que le titre n'est pas très clair. me laisser expliquer : dire, j'ont 2 le class= les " lineNumbers " >
1 de >

classe B
{
public :
	international BNum ;
} ;

classe A
{
public : 
	international ANum ;
	*bMember de B ;
	A (international numérique)
	{
		ANum = numérique ;
		bMember = nouveau B () ;
		bMember->BNum = +10 numériques ;
	}
	A (bb de B*) : bMember (bb)
	{
		ANum = bMember->BNum -20 ;
	}
	~A ()
	{
		bMember de suppression ;
	}
} ; le class= >

and de
1 de >
*inta d'international, *intb ;
*aa1 = nouvel A (20) ;
intb = &aa1->ANum ;
inta = nouvel international (100) ;
*intb = *inta ;
cout << aa1->ANum << endl;
cout << *inta << endl;
cout << *intb << endl;le rendement " clair " de >

the de class= de
1 de >
100
100
les choses " claires " de >

but du class= 100
1 de >
*ba de B, *bb, *bc ;
avant Jésus Christ = nouveau B () ; bc->BNum = 1000 ;
A* aa2 = nouvel A (avant Jésus Christ) ;
bb = aa2->bMember ;
Ba = nouveau B () ; ba->BNum = 200 ;
*bb = *ba ;
cout << aa2->ANum << endl;
cout << ba->BNum << endl;
cout << bb->BNum << endl;
cout << bc->BNum << endl;class= >

output de
1 de >
1000
200
200
200

even que la valeur s'est tenu par avant Jésus Christ des changements. mais rien n'arrive à la raison de bMember.
the pour l'usage des indicateurs factices que, dans mon application, réellement j'emploie des vecteurs des indicateurs à un champ d'un certain type, de ma classe principale. comment ose je dépasser ce champ using l'indicateur contenu dans mon vecteur. peut-être le problème se pose en raison de ma mauvaise conception, mais je suis curieux au sujet de la situation ci-dessus. (1000.200.200…)commentaires appreciated.
thanks du
any class= de

Réponse : comment attribuer à nouveau un membre de classe dans c++ (dépasser sa valeur par l'indicateur)

>> même la valeur s'est tenue par avant Jésus Christ des changements. mais rien n'arrive au bMember.

Naturellement quelque chose arrive au bMember : vous la recouvrez ici :

>> *bb = *ba ;

points de bb au même objet de B qu'aa2->bMember, IE. les deux point à l'objet ce indique avant Jésus Christ.

Ainsi, quand vous déréférencez l'indicateur de bb (*bb), vous obtenez cet objet (le même objet que tous les trois indicateurs mentionnés indiquent).
Quand vous assignez alors le *ba à cet objet, vous le recouvrez avec les nouvelles données. Ceci signifie que chacun des trois a mentionné que les indicateurs indiqueront maintenant cet objet recouvert.



Je dois dire cependant que vous faites une certaine substance vraiment folle ici. Quel est le point de tout ce code ? Il semble fortement sujet aux erreurs, et inutilement compliqué.
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us