• # Argument du constructeur ?

    Posté par (site web personnel) . En réponse au message Le constructeur d'une classe de base peut-il savoir qu'il n'est pas le dernier?. Évalué à 2.

    Pourquoi pas utiliser un constructeur de Base avec argument ?

    #include <iostream>
    #include <typeinfo>
    class Base {
     public:
     Base() { this->init( typeid(this) ); }
     protected:
     Base( const std::type_info & dti ) { this->init( dti ); }
     void init( const std::type_info & dti )
     { std::cout << dti.name() << std::endl; }
    };
    class Derived : public Base {
     public:
     Derived() : Base( typeid(this) ) { ; }
    };
    class Derived2 : public Base {
     public:
     Derived2() : Base( typeid(this) ) { ; }
    };
    int main()
    {
     Base b;
     Derived d;
     Derived2 d1;
    }