#include<iostream> using namespace std; class Base { public: Base(int i){a=i;} void add(int j){a=a+j;} void print(){cout<<"a="<<a<<endl;} private: int a; }; class Derived:public Base{ public: Derived(int i,int j):Base(i),b(j){} void print(){cout<<"b="<<b<<endl;} void func1(){add(10);} void func2(){Base::print();} private: int b; }; void main() { Base b(1); b.print(); Derived d(2,3); d.func1(); d.Base::print(); d.Derived::print(); d.func2(); }输出结果
时间: 2024-04-02 19:32:50 浏览: 80
#include_iostream.h_
4星 · 用户满意度95%
输出结果应该是:
a=1
b=3
a=12
b=3
a=12
解释一下,第一行输出 a=1,即 Base 对象 b 中 a 的初始值;第二行输出 b=3,即 Derived 对象 d 中 b 的初始值;第三行输出 a=12,因为在调用 d.func1() 函数时,会调用 Base 类中的 add 函数,将 a 的值加上 10,因此输出 a=12;第四行输出 b=3,因为调用的是 Derived::print 函数,输出的是 b 的值;第五行输出 a=12,同样是调用 Base::print 函数输出 a 的值。
阅读全文