分享一道类继承的笔试题目
来源:互联网 发布:福尔摩斯探案集 知乎 编辑:程序博客网 时间:2024/06/13 05:48
转自:http://blog.csdn.net/liuzhanchen1987/article/details/8074714
- <pre class="cpp" name="code">#include<iostream>
- using namespace std;
- class A
- {
- public:
- virtual void fun1()
- {
- cout<<"A fun1"<<endl;
- }
- void fun2()
- {
- cout<<"A fun2"<<endl;
- }
- };
- class B :public A
- {
- public:
- void fun1()
- {
- cout<<"B fun1"<<endl;
- }
- void fun2()
- {
- cout<<"B fun2"<<endl;
- }
- };
- int main()
- {
- B *obB=new B;
- A *obA=(A*)obB;
- obA->fun1();
- obA->fun2();
- cout<<endl;
- obA = (B*)obA;
- obA->fun1();
- obA->fun2();cout<<endl;
- A *a1=new A;
- B *b1=(B*)a1;
- a1->fun1();
- a1->fun2();cout<<endl;
- a1=(A*)a1;
- a1->fun1();
- a1->fun2();
- cout<<endl;
- B b2;
- A a2=b2;//对象类型进行了转换
- a2.fun1();
- a2.fun2();cout<<endl;
- A a3;
- // B b3=(B)a3; 不可以转换
- return 0;
- }</pre><br>
- <pre><pre class="cpp" name="code">对于多态,调用子类的函数还是父类的函数是由其对象决定的,不是由指针决定的,
- 输出结果是:</pre><pre class="cpp" name="code">B fun1
- A fun2</pre><pre class="cpp" name="code">父类指针指向子类,如果父类函数为虚函数则调用子函数,否则调用父类中函数。 B fun1
- A fun2</pre><pre class="cpp" name="code">将原先指向子类的父类再转换成子类,不太清楚为什么是以上输出,欢迎大牛指点派生类指针指向基类,调用的函数全是基类的,因为该对象没有被转换成派生类对象A fun1
- A fun2</pre><pre class="cpp" name="code">A fun1
- A fun2</pre><pre class="cpp" name="code">派生类完全转换成基类对象</pre><pre class="cpp" name="code">A fun1</pre><pre class="cpp" name="code">A fun2</pre><br></pre>
- <pre></pre>
- 分享一道类继承的笔试题目
- 分享一道类继承的笔试题目
- 笔试的一道题目
- 华为的一道笔试题目
- 一道有趣的笔试题目!
- 关于继承的一道题目
- 一道关于继承的题目
- [C++笔试]类及继承的题目
- 分享一道笔试题目--关于static和extern变量的问题
- 分享一道笔试题目--关于static和extern变量的问题
- 笔试的一道关于测试的题目
- 阿里巴巴的笔试的一道题目
- 百度一道笔试题目的答案
- 2012校园招聘的一道笔试题目
- 试题:网易笔试的一道题目
- 2015 百度笔试的一道经典题目
- 一道多线程笔试题目的联想
- 一道笔试题目引发的思考
- 设计模式——单例模式
- UVA 12524 Arranging Heaps 动态规划 斜率优化
- SEO写作中五个最常见的问题
- 各种语言的代码加注释,放在总有用吧
- 分享一道笔试题目--关于static和extern变量的问题
- 分享一道类继承的笔试题目
- 分享一道很有意思的算法题目
- 安装注意事项
- c#中的数据绑定 Eval和Bind的区别
- 关于MouseListener接口的简单使用
- 手动安装cloudera cdh4.2 hadoop + hbase + hive(一)
- Ubuntu11.10下编译android内核源码
- Struts2_值栈
- 手动安装cloudera cdh4.2 hadoop + hbase + hive(二)