是否可以使用智能指针从抽象类访问具体方法?

问题描述

class Base {

 private:
  int val;
 public:
  int getVal(){return val;}
  virtual void setVal(int c) = 0;

Base(int a): a(val){}
~virtual Base(){}
};

///创建了重写纯虚拟方法的派生类

class Derived : public Base {
 private:
  int val2;
 public:
  //some member functions 
  void setVal(int c){val2 = c;}
  Derived(int b) : Base(val2){}
  ~Derived(){}
  };

#include

int main () {

//试图使用智能指针创建抽象对象的实例以访问具体方法

 std::shared_ptr<Base>(5);
 b->getVal();

 return 0;
 }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)