我正在使用C++11智能指针重写一个应用程序。
我有一个基类:
class A {};
还有一个派生类:
class B : public A {
public:
int b;
};
我有另一个类,其中包含一个带有A或B对象的向量:
class C {
public:
vector<shared_ptr<A>> v;
};
我在构建C类使用A类(基类)对象时没有问题,但如何使用B类(派生类)对象填充它呢?
我正在尝试以下内容:
for(int i = 0; i < 10; i++) {
v.push_back(make_shared<B>());
v.back()->b = 1;
};
编译器返回错误:
error: 类A没有名为'b'的成员