虽然我个人在学习C++,但我对为类分配指针存疑。例如:
43 int main () {
44 View *window = new View ("window");
45 Render *renderer; // why Render(upper class) points subclass and it works?
46 renderer = new Print;
47 renderer->draw (window); // this renderer works like Print function. why?
48
49 //what are the difference between up and down?
50 Print *a;
51 a = new Print;
52 a->draw (window);
53 return 0;
54 }
请注意,Render
是类,Print
是 Render
的子类。然而,正如您在第 46 行中看到的,Upper class 指向子类并且它可以正常工作。
因此,我还尝试在第 52 行指向 Print
类并调用 draw
函数。它没有错误。
我不知道这些有什么区别,也不知道为什么它可以正常工作而没有错误或警告。
最佳答案
如果你实例化一个继承类,它的基础对象也会被实例化。这就是多态。我认为你应该通读Virtual Functions C++ FAQ .
关于c++ - 分配相同类时上层类和继承类指向的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20879244/