I'm rewriting an application using c++11 smart pointers.
I have a base class:
class A {};
And a derived class:
class B : public A {
public:
int b;
};
I have another class containing a vector with either A or B objects:
class C {
public:
vector<shared_ptr<A>> v;
};
I have no problem constructing C with A (base class) objects but how can I fill it with B (derived class) objects?
I'm trying this:
for(int i = 0; i < 10; i++) {
v.push_back(make_shared<B>());
v.back()->b = 1;
};
And the compiler returns:
error: ‘class A’ has no member named ‘b’
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…