类具有三种成员属性,一种是public、一种是protected、一种是private。这三种在派生的类中也有不同的访问权限,当然不单单只看父类的成员属性,还要看派生类以什么方式继承父类,如下代码所示:
#include <iostream> using namespace std; class Base // 父类,又称为基类 { public: int pub; // protected 通过类对象访问的时候,等同于private protected: int pro; private: int pri; }; // Derive 为 Base 的子类,又称 Base 的派生类 class Derive : public Base { public: void display() { pub = 200; pro = 200; /*pri = 200; //不允许的*/ } }; #if 0 基类属性 public继承 protected继承 private继承 public public protected private protected protected protected private private inaccessable inaccessable inaccessable #endif int main(int argc, char* argv[]) { Derive d; d.pub = 300; /*d.pro = 200; //不允许的*/ /*d.pri = 200; //不允许的*/ return 0; }
基类属性 | public继承 | protected继承 | private继承 |
---|---|---|---|
public 成员 | public | protected | private |
protected 成员 | protected | protected | private |
private 成员 | inaccessable | inaccessable | inaccessable |