• C++笔记(2)public,private,protected关键字


    1:private, public, protected 成员函数

    private:只能由1.该类中的函数、2.其友元函数访问。
    不能被任何其他访问,该类的对象也不能访问。

    protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。
    但不能被该类的对象访问。

    public:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,也可以由4.该类的对象访问。

    注:友元函数包括3种:设为友元的普通的非成员函数;设为友元的其他类的成员函数;设为友元类中的所有成员函数。

    2:private, public, protected 类的继承

    private 属性不能够被继承。
    使用private继承,父类的protected和public属性在子类中变为private;
    使用protected继承,父类的protected和public属性在子类中变为protected;
    使用public继承,父类中的protected和public属性不发生改变;

    如下所示:
    public: protected: private:
    public继承 public protected 不可用
    protected继承 protected protected 不可用
    private继承 private private 不可用

    protected继承和private继承能降低访问权限。

     1#include <stdio.h>
     2
     3class    Base
     4{
     5    public:
     6        void fn_pub()
     7        {
     8        }
    ;
     9    private:
    10        void fn_priv()
    11        {
    12        }
    ;
    13    protected:
    14        void fn_prot()
    15        {
    16        }
    ;
    17}
    ;
    18
    19class Derived_pub: public Base
    20{
    21    public:
    22        void Test()
    23        {
    24            fn_pub();
    25            //fn_priv();    //Fail!!
    26            fn_prot();
    27        }
    ;
    28}
    ;
    29
    30class Derived_priv: private Base
    31{
    32    public:
    33        void Test()
    34        {
    35            fn_pub();
    36            //fn_priv();//Fail!!
    37            fn_prot();
    38        }
    ;
    39}
    ;
    40
    41class Derived_protec: protected Base
    42{
    43    public:
    44        void Test()
    45        {
    46            fn_pub();
    47            //fn_priv();//Fail!!
    48            fn_prot();
    49        }
    ;
    50}
    ;
    51
    52
    53Derived_pub     drvd_pub;
    54Derived_priv     drv_priv;
    55Derived_protec drv_protec;
    56
    57void main()
    58{
    59    drvd_pub.fn_pub();
    60    //drvd_pub.fn_priv();//Fail!!
    61    //drvd_pub.fn_prot();//Fail!!
    62    
    63    //drv_priv.fn_pub();//Fail!!
    64    //drv_priv.fn_priv();//Fail!!
    65    //drv_priv.fn_prot();//Fail!!
    66    
    67    //drv_protec.fn_pub();//Fail!!
    68    //drv_protec.fn_priv();//Fail!!
    69    //drv_protec.fn_prot();//Fail!!
    70    
    71}




    参考:
    http://blog.minidx.com/2007/11/03/48.html
  • 相关阅读:
    第九周学习报告
    人月神话阅读笔记02
    数组 分步 详细
    第八周学习总结
    课堂练习
    学习进度报告09
    用户模板和用户场景
    学习进度报告08
    课堂随笔
    学习进度报告07
  • 原文地址:https://www.cnblogs.com/cutepig/p/1375925.html
Copyright © 2020-2023  润新知