我正在使用c ++ 11智能指针重写应用程序.
我有一个基类:
class A {};
Run Code Online (Sandbox Code Playgroud)
派生类:
class B : public A {
public:
int b;
};
Run Code Online (Sandbox Code Playgroud)
我有另一个类包含一个带有A或B对象的向量:
class C {
public:
vector<shared_ptr<A>> v;
};
Run Code Online (Sandbox Code Playgroud)
使用A(基类)对象构造C没有问题但是如何用B(派生类)对象填充它?
我正在尝试这个:
for(int i = 0; i < 10; i++) {
v.push_back(make_shared<B>());
v.back()->b = 1;
};
Run Code Online (Sandbox Code Playgroud)
并且编译器返回:错误:'class A'没有名为'b'的成员