相关疑难解决方法(0)

C++ 11智能指针和多态

我正在使用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'的成员

c++ polymorphism smart-pointers

6
推荐指数
2
解决办法
1万
查看次数

标签 统计

c++ ×1

polymorphism ×1

smart-pointers ×1