CHAPTER1-22.cpp
上传用户:fjc899
上传日期:2007-07-03
资源大小:187k
文件大小:1k
源码类别:

STL

开发平台:

C/C++

  1. //文件名:CHAPTER1-22.cpp
  2. #include <iostream.h>
  3. //定义基类A
  4. class A
  5. {
  6. public:
  7.     A() { cout<<"类A的构造函数!"<<endl; }
  8.     A(int a) { Aa = a, aa = a, aaa = a; }
  9.     void Aprint() { cout<<"类A打印自己的private成员aa:"<<aa<<endl; }
  10.     int Aa;
  11. private:
  12.     int aa;
  13. protected:
  14.     int aaa;
  15. };
  16. //定义由基类A派生的类B
  17. class B : public A
  18. {
  19. public:
  20.     B() { cout<<"类B的构造函数!"<<endl; }
  21.     B(int i, int j, int k);
  22.     void Bprint() 
  23. cout<<"类B打印自己的private成员bb和protected成员bbb:"<<bb<<","<<bbb<<endl;
  24. }
  25.     void B_Aprint()
  26. cout<<"类B的public函数访问类A的public数据成员Aa:"<<Aa<<endl;
  27. cout<<"类B的public函数访问类A的protected数据成员aaa:"<<aaa<<endl;
  28. GetAaaa();
  29. GetAaaa1();
  30. }
  31. private:
  32.     int bb;
  33.     void GetAaaa() 
  34. cout<<"类B的private函数访问类A的public数据成员Aa:"<<Aa<<endl; 
  35.           cout<<"类B的private函数访问类A的protected数据成员aaa:"<<aaa<<endl;
  36. }
  37. protected:
  38.     int bbb;
  39.     void GetAaaa1() 
  40. cout<<"类B的protected函数访问类A的public数据成员Aa:"<<Aa<<endl;
  41.         cout<<"类B的protected函数访问类A的protected数据成员aaa:"<<aaa<<endl;
  42. }
  43. };
  44. //基类B的构造函数,需负责对基类A的构造函数的初始化
  45. B::B(int i, int j, int k):A(i), bb(j), bbb(k) {}
  46. //程序主函数
  47. void main()
  48. {
  49.     B b1(100, 200, 300);    //定义类B的一个对象b1,并初始化构造函数和基类构造函数
  50.     b1.B_Aprint();    //类B调用自己的成员函数B_Aprint函数
  51.     b1.Bprint();    //类B对象b1访问自己的private和protected成员
  52.     b1.Aprint();    //通过类B的对象b1调用类A的public成员函数
  53. }