类的继承

tech2025-10-18  5

//类的调用 在内部:public 可以访问protect,private的成员函数,在外部只能访问public的成员函数 //1)公有继承——public:基类的公有变为派生类的公有,基类的保护变为派生类的保护,私有派生类不可访问 //2)私有继承——private:基类的公有变为派生类的私有,基类的保护变为派生类的私有,基类的私有不可访问 //3)保护继承——protect:基类的公有变为派生类的保护,基类的保护变为派生类的保护,基类的私有不可访问

基类

class my_basic { public: my_basic() {} int my_basic_public; int get_my_basic_protected() { return my_basic_protected; } int get_my_basic_private() { return my_basic_private; } enum {a0,a1,a2,a3}; static int add22() { return 255; } protected: int my_basic_protected=3; private: int my_basic_private=255; };

公有继承

class my_basic_A : public my_basic { public: my_basic_A() {} int AAA; int get_basicprotected() { return my_basic_protected; } protected: private: };

公有继承–等效于

class AAA {public: AAA() {} int AAA; int get_basicprotected() { return my_basic_protected; } //相当于继承来的 int my_basic_public; int get_my_basic_protected() {return my_basic_protected; } int get_my_basic_private() {return my_basic_private; } enum {a0,a1,a2,a3}; static int add22() {return 255;} protected: int my_basic_protected=3; private: }; //类AAA与my_basic_A 一样

保护继承

class my_basic_B : protected my_basic {public: my_basic_B() {} int AAA; int get_basicprotected() { return my_basic_protected; } protected: private:

保护继承–等效于

class BBB { public: BBB() {} int AAA; int get_basicprotected() { return my_basic_protected; } protected: //相当于继承来的 int my_basic_public; int get_my_basic_protected() { return my_basic_protected; } int get_my_basic_private() { return my_basic_private; } enum {a0,a1,a2,a3}; static int add22() { return 255; } //继承 int my_basic_protected=3; private: };

私有继承

class my_basic_C : private my_basic { public: my_basic_C() {} int AAA; int get_basicprotected() { return my_basic_protected;// } protected: private: };

私有继承–等效于

class CCC { public: CCC() {} int AAA; int get_basicprotected() { return my_basic_protected;// } protected: private: //相当于继承来的 int my_basic_public; int get_my_basic_protected() { return my_basic_protected; } int get_my_basic_private() { return my_basic_private; } enum {a0,a1,a2,a3}; static int add22() { return 255; } //继承 int my_basic_protected=3;
最新回复(0)