C++中的public、protected、private区别详解

来源:互联网 发布:热血传奇刷元宝软件 编辑:程序博客网 时间:2024/05/17 23:41

C++中的public、protected、private区别详解

第一:private、public、protected访问的范围。
        private:只能由1、该类中的函数;2、其友元函数访问。不能被其他任何访问,该类对象也不能访问。
        protected:可以被1、该类中的函数;2、子类的函数;3其友元函数访问。
        public:可以被1、该类中的函数;2、子类的函数;3、其友元函数;4该类的对象访问。
        注:友元函数包括3中,设为友元函数的普通非成员函数;设为友元的其他类的成员函数;设为友元类中的所有成员函数
第二:类的继承后方法属性的变化。
        private属性不能够被继承。
使用private继承,父类的protected和public属性在子类中变为private;
使用protected继承,父类的protected和public属性在子类中变为protected;
使用public继承,父类的protected和public属性不发生变化;

        关于可访问性还有另一种说法:这里规定,称派生类的对象对基类访问为水平访问,称派生类的成员对基类成员的访问为垂直访问。则有:
公有继承时,水平访问和垂直访问对基类的公有成员不受限制。
私有继承时,水平访问和垂直访问对基类的公有成员也受限制。
保护继承时,对于垂直访问对于基类的公有成员不受限制,对于水平访问对基类中的公有成员也不能访问。

       对于基类中的私有成员,只能被基类中的成员函数和友元函数访问。任何一个类都可以派生出一个新类,派生类也可以再派生出新类,因此基类和派生类是相对的。


0 0
原创粉丝点击