写结果。 class Base { public: virtual void Set(int b){x=b;} virtual int Get() { return x;} private: int x; }; class Derived: public Base { public: void Set(int d){y = d;} int Get() {return y;} private: int y; }; int main( ) { Base B_obj; Derived D_obj; Base *p=&B_obj; p->Set(10); cout<<p->Get(); p=&D_obj; p->Set(20); cout<< p->Get(); p->Base::Set(30); cout<< p->Base::Get(); p->Set(p->Get()+20); cout<< p->Get(); return 0; }
时间: 2024-03-11 19:45:13 浏览: 87
程序的输出结果为:
10 20 30 50
程序中定义了一个基类 Base 和一个派生类 Derived。Base 类有一个私有成员变量 x 和两个公有成员函数 Set 和 Get,其中 Set 用于设置 x 的值,Get 用于获取 x 的值。Derived 类从 Base 类继承,另有一个私有成员变量 y 和重载的 Set 和 Get 函数,Set 用于设置 y 的值,Get 用于获取 y 的值。
在 main 函数中,定义了一个 Base 类对象 B_obj 和一个 Derived 类对象 D_obj,以及一个 Base 类的指针 p,p 指向 B_obj。首先通过 p 调用 Base 类的 Set 函数将 x 的值设为 10,然后通过 p 调用 Base 类的 Get 函数输出 x 的值,即输出 10。
接着将 p 指向 D_obj,通过 p 调用 Derived 类的 Set 函数将 y 的值设为 20,然后通过 p 调用 Derived 类的 Get 函数输出 y 的值,即输出 20。
接下来通过 p 调用 Base 类的 Set 和 Get 函数,分别将 x 的值设为 30 并输出 x 的值,即输出 30。
最后通过 p 调用 Set 和 Get 函数,将 p 的值加上 20 并输出 p 的值,即输出 50。
阅读全文