C++面试题(9)| private、public和protected的区别

148 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第2天,点击查看活动详情

image.png

(欢迎大家关注我的微信公众号——控制工程研习,上面会分享很多我学习过程中总结的笔记。)

private,public,protect 各自有什么区别(来自华为C++面试题)

访问范围:

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

    (2)protected: 可以被该类中的函数、子类的函数、以及其友元函数访问,但不能被该类的对象访问

    (3)public: 可以被该类中的函数、子类的函数、其友元函数访问,也可以由该类的对象访问

    注:友元函数包括两种:设为友元的全局函数,设为友元类中的成员函数

继承后属性变化:

集成方法基类方法在派生类里的变化派生类成员函数的访问权限派生类实例变量的访问权限
private继承基类的所有方法在派生类中变为private可以访问基类的public成员、protected成员,但是无法访问基类的private成员无法访问基类的任何成员,因为基类的所有成员在派生类中变成了private
protected继承基类的public方法在派生类中变为protected,publiced和private方法不变派生类的实例变量,无法访问基类的任何成员,因为基类的public成员在派生类中变成了protected
public继承基类中的方法属性不发生改变可以访问基类的public成员,但是无法访问protected、private成员