#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-03 13:31:40 浏览: 89
使用include <iostream>时一定要加using namespace std
这段代码定义了两个类:Base和Derived。Derived通过公有继承Base而来,它有一个私有成员变量b,和两个成员函数func1和func2。其中,func1调用了Base类中的add函数,将Base类中的a加上了10;func2调用了Base类中的print函数,输出Base类中的a。Derived类中的print函数输出了Derived类中的b。
在main函数中,首先创建了一个Base类对象b,并输出了它的a值。然后创建了一个Derived类对象d,它的Base部分使用了Base类中的构造函数,将其a值初始化为2,而Derived类中的b值初始化为3。接着,调用了d的func1函数,将Base类中的a值加上了10。然后,调用了Base类中的print函数,输出了Base类中的a值。接着,调用了Derived类中的print函数,输出了Derived类中的b值。最后,调用了d的func2函数,输出了Base类中的a值。
总之,这段代码主要演示了继承、构造函数的调用顺序、成员函数的调用和重载以及作用域解析运算符的使用。
阅读全文