Dziedziczenie tylko w celu zmiany konstruktora

0

Mam pytanie o poprawność takiej praktyki.

class Dziennik{
    public:
    Dziennik(int ilosc_ocen){
        oceny = new int [ilosc_ocen];
    }
    ~Dziennik(){
        delete[] oceny;
    }
    protected:
    int *oceny;
};
 
class MojDziennik : public Dziennik{
    public:
    MojDziennik() : Dziennik(7){}
};

Załóżmy, że istnieje klasa Dziennik, ale będę potrzebował wiele razy utworzyć obiekt z takim samym parametrem. Czy poprawne jest, żebym wykorzystał dziedziczenie (MojDziennik) i napisał własny konstruktor w celu ujednolicenia zapisu?

0

Według mnie, jeśli to ma być jedyny powód, to chyba nie jest to dobry pomysł. Dlaczego po prostu nie wykorzystać konstruktora domniemanego ?

class Dziennik{
    public:

    enum{

         TYPOWA_ILOSC_OCEN = 7
    };

    explicit Dziennik(int ilosc_ocen = TYPOWA_ILOSC_OCEN);
    ~Dziennik();

    private:
    int *oceny;
};

Dziennik::Dziennik(int ilosc_ocen)
    : oceny( new int [ilosc_ocen] ) {
        ;
}

Dziennik::~Dziennik(){

        delete[] oceny;
}
0

Zapomniałem dodać, że nie mogę w żaden sposób modyfikować klasy Dziennik.

1 użytkowników online, w tym zalogowanych: 0, gości: 1