远山的呼唤国语完整版:C++类的protected与private有何区别?

来源:百度文库 编辑:神马品牌网 时间:2024/05/10 09:25:08
两者对类成员有何不同的限制?
是否可以像访问public成员一样直接访问protected成员?

这两个是访问类中成员权限的限制符.在类外如果想使用类中的成员,只能直接使用public类型的,protected和private都是不能访问的,对于类外使用而言,这两个是完全相同的.

但是在基类的派生类中,可以直接访问继承而来的protected成员,但是不能访问private限制的成员.所以在派生类中,可以访问基类继承而来的public和proected两种类型的成员.在public公有派生下,继承而来的成员访问权限不变.protected派生下,public和protected都变成protected,private派生下,所有的继承下来都是private了.

如果仍旧迷惑,可以Q我 188925047

private不能被继承
protected能被继承
回答你的第2个问题
protected类型的访问机制与private一样

第2个问题的补充:
在类外部,非友元类、非友元函数是不能访问protected成员的。

最本质的区别就像softnow说的那样