持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第2天,点击查看活动详情
(欢迎大家关注我的微信公众号——控制工程研习,上面会分享很多我学习过程中总结的笔记。)
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成员 |