C++中public,protected,private访问小结

    技术2022-05-20  43

    =================================================已知3个类O、P和Q,类O中定义了一个私有方法F1、一个公有方法F2和一个受保护的方法F3:类P和类Q是类O的派生类,其继承方式如下所示: class P : protected O {…}; class Q : public O {…}; 关于方法F1的描述中正确的是___(34)___;关于方法F2的描述中正确的是___(35)___;关于方法F3的描述中正确的是___(36)___。 (34)A.方法F1无法被访问 B.只有在类O内才能访问方法F1 C.只有在类P内才能访问方法F1 D.只有在类Q内才能访问方法F1 (35)A.类O、P和Q的对象都可以访问方法F2 B.类P和Q的对象都可以访问方法F2 C.类0和Q的对象都可以访问方法F2 D.只有在类P内才能访问方法F2 (36)A.类0、P和Q的对象都可以访问方法F3 B.类0、P和Q的对象都不可以访问方法F3 C.类0和Q的对象都可以访问方法F3 D.类P和Q的对象都可以访问方法F3。==================================================该题目涉及到两个知识点: 第一:private,public,protected方法的访问范围. private: 只能由该类中的成员函数和友员访问,不能被该类的对象访问;protected: 可以被该类中的成员函数和其友元函数访问,以及由该类的派生类的成员函数和友元使用,但不能被该类的对象访问;public: 可以被该类中的成员函数和其友元函数访问,以及由该类的派生类的成员函数和友元使用,,也可以由该类的对象访问.第二:类的继承后方法属性变化: 使用private继承,父类的所有方法在子类中变为private; 使用protected继承,父类的protected和public方法在子类中变为protected,private方法不变; 使用public继承,父类中的方法属性不发生改变; 由上面两个分析,不难得出上述问题的正确答案: (34) B 私有方法只能在本类中访问,子类继承父类的共有,保护方法,但不能访问父类的私有方法; (35) C 公有方法可以被类的对象访问,但使用protected继承后,子类中的方法都为保护方法,不能被该子类的对象访问,使用public继承子类对象可以访问子类中的公有方法; (36) B protected方法不能被自类的对象访问;子类采用protected和public方法继承,父类中protected方法仍然为protected方法,无法使用子类的对象访问,同时父类本身的对象也无法访问;

    本文来自博客,转载请标明出处:http://blog.csdn.net/nellson/archive/2010/02/06/5293584.aspx


    最新回复(0)