f1003.cpp
资源名称:c.rar [点击查看]
上传用户:puke2000
上传日期:2022-07-25
资源大小:912k
文件大小:2k
源码类别:

C#编程

开发平台:

Visual C++

  1. //=====================================
  2. // f1003.cpp
  3. //  test access control
  4. //=====================================
  5. class Base{
  6.   int b1;
  7. protected:
  8.   int b2;
  9.   void fb2(){ b1=1; }
  10. public:
  11.   int b3;
  12.   void fb3(){ b1=1; }
  13. };//-----------------------------------
  14. class Pri : private Base{
  15. public:
  16.   void test(){
  17.     b1=1;    // error
  18.     b2=1;    // ok
  19.     b3=1;    // ok
  20.     fb2();   // ok
  21.     fb3();   // ok
  22.   }
  23. };//-----------------------------------
  24. class FromPri : public Pri{
  25. public:
  26.   void test(){
  27.     b1=1;     // error
  28.     b2=1;     // error
  29.     b3=1;     // error
  30.     fb2();    // error
  31.     fb3();    // error
  32.   }
  33. };//-----------------------------------
  34. class Pro : protected Base{
  35. public:
  36.   void test(){
  37.     b1=1;     // error
  38.     b2=1;     // ok
  39.     b3=1;     // ok
  40.     fb2();    // ok
  41.     fb3();    // ok
  42.   }
  43. };//-----------------------------------
  44. class FromPro : public Base{
  45. public:
  46.   void test(){
  47.     b1=1;     // error
  48.     b2=1;     // ok
  49.     b3=1;     // ok
  50.     fb2();    // ok
  51.     fb3();    // ok
  52.   }
  53. };//-----------------------------------
  54. class Pub : public Base{
  55. public:
  56.   void test(){
  57.     b1=1;      // error
  58.     b2=1;      // ok
  59.     b3=1;      // ok
  60.     fb2();     // ok
  61.     fb3();     // ok
  62.   }
  63. };//-----------------------------------
  64. class FromPub : public Base{
  65. public:
  66.   void test(){
  67.     b1=1;      // error
  68.     b2=1;      // ok
  69.     b3=1;      // ok
  70.     fb2();     // ok
  71.     fb3();     // ok
  72.   }
  73. };//-----------------------------------
  74. int main(){
  75.   Pri priObj;
  76.   priObj.b1=1;   // error
  77.   priObj.b2=1;   // error
  78.   priObj.b3=1;   // error
  79.   Pro proObj;
  80.   proObj.b1=1;   // error
  81.   proObj.b2=1;   // error
  82.   proObj.b3=1;   // error
  83.   Pub pubObj;
  84.   pubObj.b1=1;   // error
  85.   pubObj.b2=1;   // error
  86.   pubObj.b3=1;   // ok
  87. }//====================================
  88.