#include<iostream> class A { public: int a1, a2 ; A( int i1=0, int i2=0 ) { a1 = i1; a2 = i2; } void print() { cout << "a1=" << a1 << '\t' << "a2=" << a2 << endl ; } }; class B : public A { public: int b1, b2 ; B( int j1=1, int j2=1 ) { b1 = j1; b2 = j2; } void print() { cout << "b1=" << b1 << '\t' << "b2=" << b2 << endl ; } void printAB() { A::print() ; print() ; } }; void main() { B b ; b.A::print(); b.printAB(); }运行结果
时间: 2024-01-10 07:04:30 浏览: 63
#include <iostream>
这段代码的运行结果会输出以下内容:
```
a1=0 a2=0
a1=0 a2=0
b1=1 b2=1
```
这是因为程序中定义了两个类 `A` 和 `B`,类 `B` 继承自类 `A`,并添加了两个成员变量和一个成员函数 `printAB()`。
在 `main()` 函数中,先定义了一个 `B` 类型的对象 `b`,此时会调用 `B` 类的默认构造函数,在构造函数中,会自动调用其父类 `A` 的默认构造函数,将 `a1` 和 `a2` 初始化为 `0`。然后程序依次执行了以下语句:
- `b.A::print()`:调用了 `A` 类的 `print()` 函数,输出了 `a1=0 a2=0`。
- `b.printAB()`:调用了 `B` 类的 `printAB()` 函数,其中调用了 `A` 类的 `print()` 函数,输出了 `a1=0 a2=0`,然后调用了 `B` 类的 `print()` 函数,输出了 `b1=1 b2=1`。
因此,最终程序输出了上述的三行内容。需要注意的是,在 `printAB()` 函数中,调用了 `A::print()` 函数和 `print()` 函数,分别输出了父类和子类的成员变量。
阅读全文