读程序,要求:分析描述程序功能,写出输出结果。(子类型问题)

读程序,要求:分析描述程序功能,写出输出结果。(子类型问题)#include<iostream.h>ClassA{public:a(){a=0;}A(intj){a=j}... 读程序,要求:分析描述程序功能,写出输出结果。(子类型问题)
#include <iostream.h>
Class A
{public:a() {a=0;}
A(int j) {a=j}
Void print() {cout 《a《endl; }
Int geta() {return a;}
Private: int a;}
Class B: ;public A
{public: B() {b=0;}
B(int j, int k):A(j),b(k) { }
Void print(){A::print(); cout《a《endl; }
Private: int b
Void fun(A&d)
{ cout《d.geta()*10《endl; }
Void main( )
{B bb(10,20); A aa(30);
aa = bb; aa.print();
fun(bb); cout《”End.”《endl; }
展开
 我来答
machunleilei
2012-06-18 · TA获得超过467个赞
知道小有建树答主
回答量:141
采纳率:0%
帮助的人:184万
展开全部
定义了两个类的对象,分别是bb,和aa,aa.print调用的是A类中的函数,这个函数是静态绑定的。
但是fun(bb)虽然转换成了A类型,但是要注意这里是引用,导致了编译器会引入动态联编,所以在运行的时候才会确定bb的类型,我们知道bb是B类的对象,所以会调用B类中的geta函数。这个程序主要用来说明C++语言中的继承和动态联编技术。
追问
那它的结果是什么啦?谢谢帮助。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式