Μετά από μια (σύντομη) έρευνα στο διαδίκτυο φαίνεται πως ο λόγος που ο constructor της A θα καλέσει την foo της A και όχι της Β, είναι πως αν στην κλάση Β υπάρχουν μεταβλητές που είναι αντικείμενα άλλων κλάσεων, ο constructor αυτών θα κληθεί μετά τον constructor της Α και πριν τον constructor της B.
Για παράδειγμα αν στην Β υπάρχει μια μεταβλητή mystack τύπου stack ο constructor αυτής θα κληθεί μετά τον constructor του A αλλά πριν τον constructor του Β. Ας θεωρήσουμε ότι καλούμε την foo από τον constructor την Α και η C++ επιλέγει να καλέσει την foo της Β. Τότε, αν η foo της Β καλέσει κάποια μέθοδο της mystack (για παράδειγμα προσθέσει κάποιο στοιχείο σε αυτήν), τότε αυτή θα καλούνταν πριν τον constructor της mystack γεγονός το οποίο προφανώς δεν θέλουμε να συμβεί.
Άρα αν ο προγραμματιστής ήθελε να συντάξει μια foo εντός της κλάσης Β, η οποία να κληθεί από τον constructor της κλάσης Α, θα έπρεπε να λάβει υπόψη του ότι μπορεί να τροποποιήσει μόνο μεταβλητές που είναι της κλάσης Α (και άρα έχουν ήδη αρχικοποιηθεί πριν την κλήση του constructor της Α). Φυσικά αυτό είναι ιδιαίτερα επιρρεπές σε bugs, οπότε οι σχεδιαστές της C++ επέλεξαν να μην το επιτρέψουν.