Rozważmy klasę bazową, która ma atrybutDifferent inicjalizacji atrybutu klasy bazowej
class Base
{
protected:
AttributeBase * elementPtr;
...
};
oraz klasę pochodną
class Derived : public Base
{
...
};
Mam także klasę AttributeDerived
która wywodzi się z AttributeBase
Kiedy Tworzę obiekt klasy Base
Chciałbym zainicjować elementPtr
w ten sposób:
elementPtr = new AttributeBase()
Ale kiedy utworzyć obiekt klasy Derived
Chciałbym elementPtr
zostać zainicjowany w ten sposób:
elementPtr = new AttributeDerived()
Co jest najczystszym sposobem aby to zrobić?