innholdsfortegnelseFAQ for [no.it.programmering.c++]

4.3.1 Hvordan bruker jeg en konstruktør fra en annen konstruktør?

Det kan du ikke i standard C++. Felles funksjonalitet i konstruktører kan i stedet tas ut som vanlige (typisk private) medlemsfunksjoner. For eksempel:


    #include <cstddef>      // NULL
    #include <cassert>      // assert

    class HtmlDisplay
    {
    private:

        void init( char const* url, unsigned resourceId )
        {
            assert( (url == NULL) != (resourceId == 0) );
            // ...
        }

    public:

        explicit HtmlDisplay( char const url[] )
        {
            init( url, 0 );
        }

        explicit HtmlDisplay( unsigned resourceId )
        {
            init( NULL, resourceId );
        }
    };