C++中,基类中的private跟protected成员权限上有什么区别?

2024-12-14 18:43:37
推荐回答(3个)
回答1:

public成员可以在基类访问也可以在子类访问,还可以使用基类和子类的对象访问。
protect成员可以在基类访问也可以在子类访问,不能使用对象访问。
private成员只能在基类中访问,不能再子类访问,不能使用对象访问。

以上基于public派生,否则基类的public成员在子类如果不再是public成员,则不能使用子类的对象访问。

个人一个经验是,在基类访问、在子类访问、使用对象访问,新手需要很久才能熟练深刻区分这几个概念。

回答2:

protected 的主要用途是在类的继承中。
父类中protected的成员在子类中可见(可以直接访问)
但是父类的private在子类中是不可见的。
另外你的“private只能是基类public来访问”是有问题的,这么表达不清楚,你的意思是不是用public的函数来访问private的成员?

回答3:

加上这两句话,这些烦恼就全解决了!

#define protected public
#define private public