Folgende Konselation => Designfehler??
-
Wenn ich zwei Klassen haben, welche sich gegenseitig referenzieren, ist dies dann ein zeichen für schlechte Desing? (abgesehen das ich dies in 2 Header kapseln muss)
class B{ A *m_p; B(): m_p(new A(this)){ } }; class A{ B *m_p; A(B *p) : m_p(p){ //über m_p habe ich zugriff auf variabelen von B Objekt } };
-
-
Es gibt durchaus Fälle, wo sowas Sinn macht - bestes Beispiel Container <-> Iterator (OK, die meisten Container lagern keine Iteratoren intern, sondern erzeugen sie auf Anfage, aber das Prinzip ist das selbe) oder SpielEngine <-> Spielfigur.
(ich hab' hier auch ein ähnliches Design - ein Netz hat einen vector<object> und jeder wieder einen Backlink zu seinem Netz)
PS: Und du mußt die Klassen nicht in zwei Header verteilen, du kannst sie auch gerne in einen Header zusammenfassen.