struct BaseType
{
int x1;
float x2;
};
struct ChildType
{
int y1;
float y2;
};
Class Base
{
BaseType obj;
void funcBase(BaseType **ptr)
{
*ptr = &obj; // When this assignment happens ofcourse obj is of the BaseType as the LHS ptr is pointing to a BaseType
Now I want to write a C++ equivalent code of the following 2 algorithmic statements,
BaseType's obj.x1 = ChildTypes's obj.y1;
BaseType's obj.x2 = ChildTypes's.obj.y1;
}
};
class Child :: public Base
{
ChildType obj;
};
Ich möchte auf das Objekt obj.y1 von der Basis zugreifen und es der Basis obj.x1 zuweisen.Zugriff auf das Datenamember der untergeordneten Klasse, wenn sowohl die Basis- als auch die untergeordnete Klasse denselben Objektnamen, aber unterschiedliche Typen haben. in C++
Aber 1 ist daran zu denken, dass die Objektnamen in der Basis und Kind ist die gleiche „obj“.
Kann mir jemand freundlicherweise dabei helfen. Vielen Dank.
Seans Antwort scheint eine gute Übereinstimmung für Ihre Frage zu sein (vorausgesetzt, dass seine Interpretation Ihrer Frage die richtige ist), aber es ist nicht klar, was Sie fragen. Warum versuchen Sie, auf ein Datenelement eines Child-Objekts von einer Elementfunktion eines Base-Objekts zuzugreifen? Eine Beschreibung Ihres Gesamtziels (oder Codebeispiels, das es demonstriert) wäre hilfreich. – JBentley
Was ist dein Endziel? Wie Alex Z gesagt hat, ist es möglich, aber ich empfehle es nicht besonders. Die Basisklasse sollte nicht über ihre Kindklasse wissen müssen. Diese Art von Schritten der Zehen der Vererbung. Was passiert, wenn obj tatsächlich ein BaseType ist und Sie versuchen, es wie einen ChildType zu behandeln? Schlechte, schlechte Dinge. – Corbin
In der Tat ein anderes Design ist wahrscheinlich der Weg, hier zu gehen .. –