c++ - 如何访问继承成员

标签 c++

我有一个像这样的 A 类和 B 类:

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

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

protected:
   int value;
}:

我有这段代码:

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 ?
}

感谢您的帮助。

最佳答案

将 Value() 设为 A 中的纯虚函数(同时添加虚析构函数):

class A
{
public:
  A(){}
  virtual ~A(){}
  virtual int Value() = 0;
};

关于c++ - 如何访问继承成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13921884/

相关文章:

c++ - 几乎大 n 的递归插入排序崩溃

c++ - 带互斥锁的条件变量演示程序挂起

c++ - Opengl 中飘扬的旗帜效果 (C++)

c++ - 重写的虚函数没有被调用

c++ - 将 .txt 文件中的 double 读入 double 组 C++

c++ - void 函数中 return 的目的是什么

c++ - 强制 VSProps 设置覆盖项目设置

c++ - C++ 中的通用 block 等价物

c++ - 如何将 unicode 字符串转换为其 unicode 转义字符?

c++ - C++ 中的 SQLite SELECT JOIN 和 VIEWS