Ad esempio, supponiamo di avere una classe per creare un pulsante con stili specifici comuni alla mia app:
class ButtonFactory{
public:
static Button* createAppButton(std::string st,int font size){
Button* b=new Button();
//b->setColor();b->setText()...;b->playAnimation(...);
return b;
}
}
in un'altra classe
this->b=ButtonFactory::createAppButton("OK",20);
.
.
.
//delete it at destructor
delete b;
Tuttavia, mi sento a disagio che "nuovo" e "cancella" non siano della stessa classe. Quindi la mia domanda è, dovrei anche creare un metodo di eliminazione in ButtonFactory:
static void deleteAppButton(Button* b){
delete b;
}
.
.
.
ButtonFactory::deleteAppButton(this->b);
invece di eliminare b per parole chiave direttamente?