C重载分为函数重载和运算符重载。静态联编支持的多态性称为编译时多态性也称静态多样性。实现方式函数重载和模板。动态联编所支持的多态性称为运行时多态性也称动态多态性。实现方式虚函数。public类型的变量和方法可以被当前类的对象或者对象指针访问而private和protected类型的不可以被对象和类对象指针访问但是对象中的方法可以访问对象中任意的publicprotectedprivate类型方法和变量。public继承时子对象或者子对象指针可以访问父对象中的public变量而不能访问父对象中的private和protected变量以及方法。不论何种继承子对象的方法可以访问父对象的public和protected方法和变量永远不能访问父对象中的private方法和变量。private继承时子对象或者子对象指针不可以访问父对象中所有的publicprivate和protected变量。protected继承时子对象或者子对象指针不可以访问父对象中所有的publicprivate和protected变量。同private继承也即public继承基类public成员protected成员private成员的访问属性在派生类中分别变成public, protected, privateprotected继承基类public成员protected成员private成员的访问属性在派生类中分别变成protected, protected, privateprivate继承基类public成员protected成员private成员的访问属性在派生类中分别变成private, private, private继承的总结1.基类private成员无论以什么方式继承到派生类中都是不可见的。这里的不可见是指基类的私有成员还是被继承到了派生类对象中但是语法上限制派生类对象不管在类里面还是类外面都不能去访问它。2.基类private成员在派生类中不能被访问如果基类成员不想在派生类外直接被访问但需要在派生类中访问就定义为protected。可以看出保护成员限定符是因继承才出现的。3.基类的私有成员在子类都是不可见基类的其他成员在子类的访问方式就是访问限定符和继承方式中权限更小的那个权限排序publicprotectedprivate。4.使用关键字class时默认的继承方式是private使用struct时默认的继承方式是public但最好显式地写出继承方式。测试代码#pragmaonce#includeiostreamusing namespace std;#definePUBLIC_INT_VALUE1#definePROTECTED_INT_VALUE2#definePRIVATE_INT_VALUE3class TestBase{public:TestBase();~TestBase();protected:intbase_protected;private:intbase_private;public:intbase_public;public:voidbasepublic();private:voidbaseprivate();protected:voidbaseprotected();};TestBase::TestBase(){base_publicPUBLIC_INT_VALUE;base_protectedPROTECTED_INT_VALUE;base_privatePRIVATE_INT_VALUE;cout__FUNCTION__endl;}TestBase::~TestBase(){cout__FUNCTION__endl;}voidTestBase::basepublic(){base_public;cout__FUNCTION__endl;}voidTestBase::baseprivate(){base_private;cout__FUNCTION__endl;}voidTestBase::baseprotected(){base_protected;cout__FUNCTION__endl;}class testclass:protected TestBase{public:testclass();~testclass();voidtestclassfun();};testclass::testclass(){cout__FUNCTION__endl;}testclass::~testclass(){cout__FUNCTION__endl;}voidtestclass::testclassfun(){this-base_protected0;this-base_public0;this-basepublic();this-baseprotected();cout__FUNCTION__endl;}