Aus Gründen der Geschwindigkeit habe ich Zeiger verwendet, um Objekte zu umgehen. Wenn ich versuche, auf eine Elementvariable eines Objekts innerhalb eines Objekts zuzugreifen, stürzt mein Programm jedoch ab. Gibt es etwas, das ich nicht verstehe?C++ Zugreifen auf Mitglied des verschachtelten Objekts über Zeiger
/*
ClassA
- ObjectB
--Member X
*/
class A
{
int x;
}
class B
{
A* obj; // initialized in constructor
B();
func();
}
B::B(std::vector<A> vectorA)
{
this->obj = &(vectorA.at(0))
}
B::func()
{
A* pointerA = this->obj
std::cout << pointerA->x << std::endl; // causes crash
}
_'A * obj; // im Konstruktor initialisiert'_ Wie genau? Poste bitte [MCVE]. –
"Aus Gründen der Geschwindigkeit ..." Sind Sie sicher, dass Zeiger schneller sind? Dein Compiler denkt vielleicht nicht so. – tadman
'this-> obj = & (vectorA.at (0));' das ist furchtbar gefährlich, wenn du nicht vorsichtig bist. Ihr Zeiger wird auf Crom zeigen, wenn der Vektor die Größe ändert. – user4581301