C语言中如何具体运用Virtual关键字实现多态?
- 内容介绍
- 文章标签
- 相关推荐
本文共计973个文字,预计阅读时间需要4分钟。
基础概念与示例+常见继承
基础理解和demo
普通的继承
#include<iostream> class Parent { public: void print() { std::cout << "Parent" << std::endl; } }; class Child : Parent { public: void print() { std::cout << "Child" << std::endl; } }; int main() { Child c; c.print(); return 0; }
输出结果为 "Child"
但是如果是 "父类的指针指向子类的对象" 这种情况下, 使用这个父类的指针去调用被重写的方法呢, 结果会是什么呢? 从语法的本质上讲, 子类对象的内存前半部分就是父类, 因为可以将子类对象的指针直接转化为父类。
本文共计973个文字,预计阅读时间需要4分钟。
基础概念与示例+常见继承
基础理解和demo
普通的继承
#include<iostream> class Parent { public: void print() { std::cout << "Parent" << std::endl; } }; class Child : Parent { public: void print() { std::cout << "Child" << std::endl; } }; int main() { Child c; c.print(); return 0; }
输出结果为 "Child"
但是如果是 "父类的指针指向子类的对象" 这种情况下, 使用这个父类的指针去调用被重写的方法呢, 结果会是什么呢? 从语法的本质上讲, 子类对象的内存前半部分就是父类, 因为可以将子类对象的指针直接转化为父类。

