Sto guardando una soluzione di un esercizio sviluppata in C++ sull'utilizzo del pattern Composite secondo lo schema sotto riportato:

Questo è un codice di esempio ma a mio avviso c'e' un punto sbagliato,
#include <iostream>
#include "widget.h"
using namespace std;
class MyButton : public Button {
TextField* tf;
public:
MyButton(TextField* t) : tf(t) {}; // costruttore
void action(void *data);
};
void MyButton::action((void *data) {
cout << tf->getTex() << endl;
}
int main() {
Window* w = new Window;
TextField* t = new TextField;
Mybutton* b = new Mybutton;
w->setTitle("Finestra");
w->add(t);
w->add(b);
};
non dovrebbe essere indicato il puntatore 't' quando viene istanziato Mybutton ? cioè così:
Mybutton* b = new Mybutton(t);