第十周-阅读程序

来源:互联网 发布:北京淘宝美工培训学校 编辑:程序博客网 时间:2024/05/17 06:34

阅读程序5:

(5)阅读下面类的定义,请说出在测试函数中不同情况的调用产生的结果#include <iostream>using namespace std;class A{protected:    int a,b;public:    A(int aa, int bb):a(aa), b(bb) {}    void printA(){        cout<<"a: "<<a<<"\tb: "<<b<<endl;    }};class B: public A{    int c;public:    B(int aa, int bb, int cc):A(aa,bb),c(cc) {}    void printB()    {       cout<<"a: "<<a<<"\tb: "<<b<<"\tc: "<<c<<endl;    }};int main(){    A a(1,1);    B b(2,3,4);    //此处加入下面各小题中的代码    return 0;}(a)    a=b;    a.printA();    b.printA();    b.printB();12341234你认为输出结果是:____________ 运行程序的结果是:____________ (b)    b=a;    a.printA();    b.printA();    b.printB();程序会发生编译错误,原因是:____ 记录下IDE中提示的错误并理解:___ (c)    A &r1=a;    A &r2=b;    r1.printA();    r2.printA();    r2.printB();将会发生错误的一行删除; 对余下的程序,你认为输出是:____ 实际运行的输出是:__________ 那一行的错误原因是:________ (d)    A *p=&a;    p->printA();    p=&b;    p->printA();    p->printB();将会发生错误的一行删除; 对余下的程序,你认为输出是:____ 实际运行的输出是:__________ 那一行的错误原因是:________ (e) 在class A中增加成员函数:int getA(){return a;} 在main函数前增加一般函数:void f(A x){    cout<<"aaaaah, my a: "<<x.getA()<<endl;}main函数中指定部分为:    f(a);    f(b);你认为输出结果是:____________ 运行程序的结果是:____________
(a):

a:2 b:3

a:2 b:3

a:2 b:3 c:4

(b):

程序会发生编译错误,原因是:_一个共有派生类的对象在使用上可以被当作基类的对象,反之则禁止___ 
记录下IDE中提示的错误并理解:_no match for 'operator=' in b=a'__ 
(c):
那一行的错误原因是:在类A中找不到函数printB

(d)

那一行的错误原因是:在类A中找不到函数printB

(e)

aaaaah, my a: 1
aaaaah, my a: 2

0 0
原创粉丝点击