如何解决是否可以使用智能指针从抽象类访问具体方法?
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 举报,一经查实,本站将立刻删除。