此刻我正在学习C ++中的Oop,我一直在想这个(B扩展了A)
A* b = new B()
我搜索了一下,发现b具有与B类相同的功能,因此我(!!)了解此与B类之间的区别是什么
A* a = new A()
但是(!!)不理解此陈述与以下内容之间的区别:
B* b = new B()
请帮忙:)
答案 0 :(得分:3)
这仅表明您可以使用超类的指针来引用子类。这对于多态性很有用。
例如,假设您有一个名为“ Shape”的类,并且还有其他类(如“ Square”和“ Triangle”)扩展了“ Shape”。您可以编写一个在“ Shape”上运行的函数,然后例如可以执行以下操作:
void doSomething(Shape* s);
Shape* triangle = new Triangle();
Shape* square = new Square();
doSomething(triangle);
doSomething(square);