jeudi 16 janvier 2020

Nested classes, inheritance and shared pointers in C++

The program below fails, obviously, in the return expression:

#include <memory>

class Base {
    public:

        class Nested {
            public:
                int c;
        };
};

class A : public Base {
    public:

        class Nested : public Base::Nested {
            public:
                int c = 1;
        };
};

class B : public Base {
    public:

        class Nested : public Base::Nested {
            public:
                int c = 2;
        };
};

int main() {
    std::shared_ptr<Base> X = std::make_shared<A>();

    return X::Nested.c;
};

How can I get Nested.c value of X? How can I get a Nested class with a parent class like X?

Aucun commentaire:

Enregistrer un commentaire