C++类的继承与派生.ppt
文本预览下载声明
#includeiostream using namespace std ; class A { public : void get_XY() { cout Enter two numbers of x, y : ; cin x y ; } void put_XY() { cout x = x , y = y \n ; } protected: int x, y ; }; class B : public A { public : int get_S() { return s ; }; void make_S() { s = x * y ; }; // 使用基类数据成员x,y protected: int s; }; class C : public B { public : void get_H() { cout Enter a number of h : ; cin h ; } int get_V() { return v ; } void make_V() { make_S(); v = get_S() * h ; } // 使用基类成员函数 protected: int h, v; }; class A class C : public B class B : public A 保护数据成员 在类层次中可见 int main() { A objA ; B objB ; C objC ; cout It is object_A :\n ; objA.get_XY() ; objA.put_XY() ; cout It is object_B :\n ; objB.get_XY() ; objB.make_S() ; cout S = objB.get_S() endl ; cout It is object_C :\n ; objC.get_XY() ; objC.get_H(); objC.make_V() ; cout V = objC.get_V() endl ; } objA.y objA.x objA x y objB.s objB.y objB.x objB s objC.h objC.v objC.s objC.y objC.x objC h v 对 objA 的 数据成员操作 调用基类A成员函数 对 objB 的数据成员操作 调用派生类B成员函数 对 objB 的数据成员操作 int main() { A objA ; B objB ; C objC ; cout It is object_A :\n ; objA.get_XY() ; objA.put_XY() ; cout It is object_B :\n ; objB.get_XY() ; objB.make_S() ; cout S = objB.get_S() endl ; cout It is object_C :\n ; objC.get_XY() ; objC.get_H(); objC.make_V() ; cout V = objC.get_V() endl ; } objA.y objA.x objA objB.s objB.y objB.x objB objC.h objC.v objC.s objC.y objC.x objC 调用基类A成员函数 对 objC 的数据成员操作 x y s h v 8.2.1 访问控制 int main() { A objA ; B objB ; C objC ; cout It is object_A :\n ; objA.get_XY() ; objA.put_XY() ; cout It is object_B :\n ; objB.get_XY() ; objB.make_S() ; cout S = objB.get_S() endl ; cout It is object_C :\n ; objC.get_XY() ; objC.get_H(); objC.make_V()
显示全部