【发布时间】:2016-03-08 08:36:16
【问题描述】:
我有一个类 A 和一个类 B,它继承自类 A。B 类有一个变量和一个函数,而 A 类没有。我做了一个指针
A* ptr=new B();
那么ptr如何访问属于B类的变量和函数呢?
【问题讨论】:
-
搜索并阅读有关downcasting的信息。
-
不建议在一篇文章中提出两个不相关的问题 - 您会得到部分或令人困惑的答案。您可以edit您的问题只留下一个问题,或者用更一般的问题替换它们。
-
至于你的第二个问题,如果你有 one 虚拟成员函数,那么你在子类的基类中只有 one 函数覆盖。它会“正常工作”。
-
感谢您的推荐。我删除第二个问题。关于第二个问题。我的意思是,A 类有 25 个子类(B 类、C 类……),每个子类都有自己独特的功能(B 类的功能 B,C 类的功能 C,……)。所以我必须在 A 类中创建虚函数 B、虚函数 C... 以允许 A* ptr 使用它们?这是最好的解决方案吗?
-
Joachim Pileborg 是正确的。但是,我建议您花几分钟的时间来了解为什么它会“正常工作”。了解语言的这些基本细微差别非常重要。
标签: c++ function variables pointers inheritance