标签:
阅读程序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(); 1 2 3 4 1 2 3 4 你认为输出结果是:____________ 运行程序的结果是:____________ (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
标签:
原文地址:http://blog.csdn.net/qq_33267291/article/details/51330306