如何访问继承的成员

flo*_*low 0 c++

我有这样的A类和B类:

class A
{
public:
   A(){}
};

class B : public A
{
public:
   B() : A()
   {
      value = 10;
   }
   int Value()
   {
      return value;
   }

protected:
   int value;
}:
Run Code Online (Sandbox Code Playgroud)

我有这个代码:

int main()
{
   A* a = new B();
   // how can I access to Value() ? I would like to make that :
   int val = a->Value();
   // must i cast a to B ? how ?
}
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

Her*_*bob 6

使Value()成为A中的纯虚函数(也添加虚拟析构函数):

class A
{
public:
  A(){}
  virtual ~A(){}
  virtual int Value() = 0;
};
Run Code Online (Sandbox Code Playgroud)