【发布时间】:2019-07-16 14:33:26
【问题描述】:
我正在学习 C++ 中的 Oop,我一直在遇到这个(B 扩展 A)
A* b = new B()
我搜索了一下,发现 b 具有与 B 类相同的功能,因此我确实(!!)了解这和之间的区别是什么
A* a = new A()
但不要(!!)了解此陈述与:
B* b = new B()
任何帮助:)
【问题讨论】:
-
阅读更多关于
virtual关键字和 virtual method table 以及虚拟成员函数的信息。考虑花几天时间阅读一个好的C++ programming book。另见一些C++ reference 网站 -
我假设您想了解多态性。检查例如this question
-
请确认类
B继承自类A。 (class B : public A {...};)。 -
您似乎有很多困惑:“b具有与B类相同的功能”不是正确的说法:
b是一个对象,而不是一个类。您需要比较的不是语句,而是结果变量。如果您没有两次使用变量名b,这将很有帮助。给指向A的指针起一个不同的名字,它会澄清你的想法,并让你并排比较一个程序中的变量。所以:A* a = new B(); B* b = new B()
标签: c++ oop inheritance