f1003.cpp

来自「it is a usefull thing」· C++ 代码 · 共 89 行

CPP
89
字号
//=====================================
// f1003.cpp
//  test access control
//=====================================
class Base{
  int b1;
protected:
  int b2;
  void fb2(){ b1=1; }
public:
  int b3;
  void fb3(){ b1=1; }
};//-----------------------------------
class Pri : private Base{
public:
  void test(){
    b1=1;    // error
    b2=1;    // ok
    b3=1;    // ok
    fb2();   // ok
    fb3();   // ok
  }
};//-----------------------------------
class FromPri : public Pri{
public:
  void test(){
    b1=1;     // error
    b2=1;     // error
    b3=1;     // error
    fb2();    // error
    fb3();    // error
  }
};//-----------------------------------
class Pro : protected Base{
public:
  void test(){
    b1=1;     // error
    b2=1;     // ok
    b3=1;     // ok
    fb2();    // ok
    fb3();    // ok
  }
};//-----------------------------------
class FromPro : public Base{
public:
  void test(){
    b1=1;     // error
    b2=1;     // ok
    b3=1;     // ok
    fb2();    // ok
    fb3();    // ok
  }
};//-----------------------------------
class Pub : public Base{
public:
  void test(){
    b1=1;      // error
    b2=1;      // ok
    b3=1;      // ok
    fb2();     // ok
    fb3();     // ok
  }
};//-----------------------------------
class FromPub : public Base{
public:
  void test(){
    b1=1;      // error
    b2=1;      // ok
    b3=1;      // ok
    fb2();     // ok
    fb3();     // ok
  }
};//-----------------------------------
int main(){
  Pri priObj;
  priObj.b1=1;   // error
  priObj.b2=1;   // error
  priObj.b3=1;   // error
  Pro proObj;
  proObj.b1=1;   // error
  proObj.b2=1;   // error
  proObj.b3=1;   // error
  Pub pubObj;
  pubObj.b1=1;   // error
  pubObj.b2=1;   // error
  pubObj.b3=1;   // ok
}//====================================

 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?