理解C++访问控制(private,protected,public)

1. private

         用于限制类的成员的时候,这些成员(变量或函数)只能被该类的成员函数(私有或公有函数,不限制,这一点与protected相同)以及被标识为friend的函数或类函数访问。这个私有是严格私有(只能本类,任何形式的派生类成员都不能访问)

    而在派生类时使用privite 限制,是指将基类所有公有的成员(变量或函数)在派生类中变成privite (包括protected修饰的成员也变成了privite)(即一把就全变成了私有了,够狠的!)。

2. protected

         用于限制类的成员的时候,作用同privite

    protected的作用体现在派生的时候,它既希望这些成员被派生类成员函数访问,不要像privite那样限制得太死,但又不希望外部(单独函数或其它类的函数)通过派生类的对象直接访问

         基类中用 protected修饰的成员,则分情况:如果派生类时使用protected修饰,则其属性不变,仍然是protected成员,如果子子孙孙都使用protected修饰,则它永远保持不变;如果派生时用privite修饰 ,则该字段在本类中变成私有了,不能再被继续派生的类访问;而public不影响原来的修饰,原来是啥还是啥,但不能把原来的priviteprotected修改为public

3. public

          public最简单,没有任何限制,原来是啥还是啥。

4.  易混淆点

         最容易混淆的是派生类时分别加 priviteprotected public 时容易搞不清,其实先丢开 public ,因为它什么也不影响,容易混淆的是 priviteprotected

我们可以认为,privite一把将所有基类成员改为privite(实际上改的是protectedpublic成员)。protected一把将所有基类成员改为protected(当然它不能将private也改了)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值