c++ - 分配相同类时上层类和继承类指向的区别

标签 c++ class variable-assignment

虽然我个人在学习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 是类,PrintRender 的子类。然而,正如您在第 46 行中看到的,Upper class 指向子类并且它可以正常工作。

因此,我还尝试在第 52 行指向 Print 类并调用 draw 函数。它没有错误。

我不知道这些有什么区别,也不知道为什么它可以正常工作而没有错误或警告。

最佳答案

如果你实例化一个继承类,它的基础对象也会被实例化。这就是多态。我认为你应该通读Virtual Functions C++ FAQ .

关于c++ - 分配相同类时上层类和继承类指向的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20879244/

相关文章:

c++ - 将 "stored"可变参数模板类型解压到模板参数中

c - 将指向结构的指针分配给变量

c++ - 将 sockaddr 分配给另一个更改地址?

ruby - block 中局部变量的作用域

c++ - concurrent_vector vs vector with mutex, push_back 线程问题

C++ : What is happening when a non-overridden calls a overridden method?

Java 三角形类

java - 如何解决 "Exception in thread "AWT-EventQueue-0"java.lang.NullPointerException"?

c++ - helgrind (valgrind) 可以与 c++11 future 一起使用吗

jQuery if hasclass then 函数