Pergunta : como atribuir novamente um membro da classe em c++ (cancelar seu valor pelo ponteiro)

olá!, o

i pensa que o título não é muito desobstruído. deixar-me explicar: dizer, mim têm 2 o class= " lineNumbers " >
1 do >

classe B
{
público:
	int BNum;
};

classe A
{
público: 
	int ANum;
	*bMember de B;
	A (int numérico)
	{
		ANum = numérico;
		bMember = B novo ();
		bMember->BNum = +10 numéricos;
	}
	A (bb de B*): bMember (bb)
	{
		ANum = bMember->BNum -20;
	}
	~A ()
	{
		bMember da supressão;
	}
}; o class= >

and de
1 do >
*inta do int, *intb;
*aa1 = A novo (20);
intb = &aa1->ANum;
inta = int novo (100);
*intb = *inta;
cout << aa1->ANum << endl;
cout << *inta << endl;
cout << *intb << endl;a saída " desobstruída " de >
the do class= de
1 do >
100
100
as coisas " desobstruídas " de >
but do class= 100
1 do >
*ba de B, *bb, *bc;
bc = B novo (); bc->BNum = 1000;
A* aa2 = A novo (bc);
bb = aa2->bMember;
vagabundos = B novo (); 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 do >
1000
200
200
200

even que o valor prendeu bc por mudanças. mas nada acontece à razão de bMember.
the para usar os ponteiros dummy que, em minha aplicação, realmente eu uso vetores dos ponteiros a um campo de algum tipo, de minha classe principal. como posso eu cancelar este campo using o ponteiro contido em meu vetor. talvez o problema ocorre por causa de meu projeto mau, mas eu sou curioso sobre a situação acima. (1000.200.200…)comentários appreciated.
thanks do
any class= do

Resposta : como atribuir novamente um membro da classe em c++ (cancelar seu valor pelo ponteiro)

>> mesmo o valor prendeu bc por mudanças. mas nada acontece ao bMember.

Naturalmente algo acontece ao bMember: você overwrite o aqui:

>> *bb = *ba;

pontos do bb ao mesmo objeto de B que aa2->bMember, IE. ambo o ponto ao objeto esse aponta bc a.

Assim, quando você dereference o ponteiro do bb (*bb), você começ esse objeto (o mesmo objeto que todos os três ponteiros mencionados apontam a).
Quando você atribui então o *ba a esse objeto, você overwrite o com os dados novos. Isto significa que todos os três mencionaram que os ponteiros apontarão agora a esse objeto overwritten.



Eu devo dizer embora que você está fazendo algum material realmente louco aqui. Que é o ponto de todo este código? Parece altamente sujeito a erros, e complicado desnecessariamente.
Outras soluções  
 
programming4us programming4us