给出下述源程序的运行结果。 #include <iostream.h> class A { private: int a, b; public: A(int i, int j) { a = i; b = j; } void Move(int x, int y) { a += x; b += y; } void Show() { cout << "( " << a << ", " << b << " )" << endl; } }; class B : private A { public: B(int i, int j, int k, int l) : A(i, j) { x = k; y = l; } void Show() { cout << x << " ," << y << endl; } void fun() { Move(3,5); } void f1() { A :: Show(); } private: int x, y; }; void main() { A e(1, 2); B d(3, 4, 5, 6); e.Show(); d.fun(); d.Show(); d.f1(); }
时间: 2023-07-15 21:10:13 浏览: 111
vc++2008编译不了#include<iostream.h>头文件
4星 · 用户满意度95%
输出结果为:
( 1, 2 )
8 ,11
( 4, 9 )
解释:
首先定义了一个类 A,包含私有变量 a 和 b,以及构造函数 A(int i, int j),Move(int x, int y) 和 Show() 三个公有函数。其中 Move(int x, int y) 函数可以将 a 和 b 分别加上 x 和 y。Show() 函数用于输出 a 和 b 的值。
接着定义了一个类 B,继承自 A,其中 x 和 y 是 B 自己的私有变量。构造函数 B(int i, int j, int k, int l) 调用了 A 的构造函数 A(i, j),并将 k 和 l 赋值给 x 和 y。类 B 还定义了三个公有函数,分别是 Show(),fun() 和 f1()。其中 Show() 函数输出 x 和 y 的值,fun() 函数调用了 A 类的 Move(int x, int y) 函数,将 A 类的 a 和 b 加上了 3 和 5,f1() 函数调用了 A 类的 Show() 函数,输出 A 类的 a 和 b 的值。
在主函数中,分别定义了一个 A 类对象 e 和一个 B 类对象 d。首先调用 e 的 Show() 函数输出 (1, 2)。然后调用 d 的 fun() 函数,将 A 类的 a 和 b 分别加上了 3 和 5,此时 A 类的 a 和 b 的值变为了 (4, 9)。接着调用 d 的 Show() 函数输出 x 和 y 的值,即 5 和 6。最后调用 d 的 f1() 函数输出 A 类的 a 和 b 的值,即 (4, 9)。
阅读全文