一道关于C++ 继承/虚函数 笔试题 [转]
2015-03-28 16:04
162 查看
转自:http://www.cnblogs.com/yangyh/archive/2011/06/04/2072393.html
首先这位作者, 因为看了这篇简短的一个博文, 我相同了关于虚函数方面的知识。
虚函数的调用通过虚函数指针来调用,如果new的对象是Son的,则不管它转化成什么指针,它的指针都是Son内部的,与指针类型无关,只与指针地址有关
非虚函数的调用则由指针类型决定
首先这位作者, 因为看了这篇简短的一个博文, 我相同了关于虚函数方面的知识。
#include "stdafx.h" #include "stdio.h" #include "string.h" class Father { public: name() {printf("father name\n");}; virtual call() {printf("father call\n");}; }; class Son: public Father { public: name() {printf("Son name\n");}; virtual call() {printf("Son call\n");}; }; main() { Son *Son1=new Son(); Father *father1=(Father *)Son1; father1->call(); father1->name(); ((Son *)(father1))->call(); ((Son *)(father1))->name(); Father *f2=new Father(); Son *s2=(Son*)f2; s2->call(); s2->name(); ((Father *)(s2))->call(); ((Father *)(s2))->name(); }
output::
Son call father name Son call Son name father call Son name father call father name
虚函数的调用通过虚函数指针来调用,如果new的对象是Son的,则不管它转化成什么指针,它的指针都是Son内部的,与指针类型无关,只与指针地址有关
非虚函数的调用则由指针类型决定
相关文章推荐
- 一道关于C++ 继承/虚函数 笔试题
- 一道关于C++ 继承/虚函数 笔试题
- 关于虚函数(多态)与继承的一道搜狗笔试题
- 关于一道C++笔试题的纠结,学计算机的伤不起啊
- 一道关于C++ 的面试题目(继承、构造函数以及析构函数)
- C++中关于 虚函数、虚析构、虚继承和虚基类
- 一道关于C++派生类初始化的笔试题
- 关于C++中私有继承后虚函数的访问权限与私有继承后多态的问题
- C++中关于虚函数接口继承与实现继承的讨论
- 面试中c++中单继承关于虚函数常遇到的4个问题
- 关于c++中继承和虚函数的一些思考
- C++构造、析构、继承、多态--一道笔试题都考到了
- 一道简单的C++笔试题,关于抽象shape类求图形周长的问题~
- 详解一道C++笔试题,考察重载、覆盖、多态
- 关于C++中的虚拟继承的一些总结
- 笔试常考--C++中的虚函数(virtual function)
- C++继承中关于子类构造函数的写法
- 关于阿里的一道笔试题分析
- [笔试题 9][c/c++]关于成员变量,对象成员的初始化问题
- C++中关于构造函数调用次序的一道经典例题及对虚函数构造顺序的理解