早教吧 育儿知识 作业答案 考试题库 百科 知识分享

读程序,要求:分析描述程序功能,写出输出结果.(子类型问题)#includeClassA{public:a(){a=0;}A(intj){a=j}Voidprint(){cout《a《endl;}Intgeta(){returna;}Private:inta;}ClassB:;publicA{public:B(){b=0;}B(intj,intk

题目详情
读程序,要求:分析描述程序功能,写出输出结果.(子类型问题)
#include
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; }
▼优质解答
答案和解析
定义了两个类的对象,分别是bb,和aa,aa.print调用的是A类中的函数,这个函数是静态绑定的.但是fun(bb)虽然转换成了A类型,但是要注意这里是引用,导致了编译器会引入动态联编,所以在运行的时候才会确定bb的类型,我们知道...