问题 单项选择题

有如下程序: #include<iostream> using namespace std; Class TestClass {int a; public: TestClass(int x){a=x;} void show(){cout<<a;}}; class TestClass1:public TestClass {int b; public: TestClass1(int i):TestClass(i+1),b(i){} void show(){cout<<b;}}; int main() {TestClass b(5),*p; TestClass1 d(1); p=&d; p->show(); return 0;} 该程序运行后的打印结果是( )。

A.5

B.1

C.0

D.2

答案

参考答案:D

解析: TestClass为TestClass1的基类,在主函数main中定义TestClass对象b,*p。TestClassl对象d,p指向d,调用其show函数。“TestClass(int i):TestClass(i+1),b(i){}”语句中的TestClass基类参数为2,所以show输出2。

填空题
单项选择题