lundi 22 décembre 2014

What pattern to use for the following scenario?

I have the following class:



class Base {
public:
Base(string name) {
agg = new Aggregate(name);
}
private:
Aggregate* agg;
};


Now I need to extend this class:



class Derived : Base {
public:
Derived(string name) : Base(name) {
agg2 = new Aggregate2(name);
}
private:
Aggregate2* agg2;
};


What I want is when I create a Base object, Aggregate needs to be created and when I create a Derived object only Aggregate2 should be created.


Now this is not happening because Aggregate its created inside the constructor which is called when I create a Derived object and like this Aggregate and Aggregate2 would be created.


I could move the creation to a different method and call that after creating the object.

Is there any other elegant way to do what I want ?


Aucun commentaire:

Enregistrer un commentaire