与朋友一起使用超类的私有变量

Posted

技术标签:

【中文标题】与朋友一起使用超类的私有变量【英文标题】:Use the private variable of the superclass with friend 【发布时间】:2014-05-29 22:45:25 【问题描述】:

我有一个带有私有变量 a 的类 A。 B类是A的子类。在B_Test类中,我想写类似“B b; b.a;”的东西,我把朋友类C放在A类和B类中,但还是不行。

有什么想法吗?谢谢。

(对不起,当我发布这个问题时,我的代码出错了。现在已经解决了)。 Rod_Algonquin 是对的。谢谢。)

【问题讨论】:

你不能使用朋友访问私有变量 私有变量a在A中定义,B继承A。B.a还能和朋友一起使用吗? B_TestC之间有关系吗? @Rod_Algonquin 当然可以。 coliru.stacked-crooked.com/a/74d909f443247fa4 【参考方案1】:

私有成员不会被继承。如果要访问继承类中的该成员,则需要使用protected 修饰符。

【讨论】:

谢谢安德罗。那么它与Java不同吗?假设 A 类有一个虚拟公共函数来返回 a,在这种情况下,B 类会发生什么? @xieziban A 类将是一个多态类,B 类现在可以转换为 A 类,但 A 类不能向下转换 @Rod_Algonquin:我不确定是否回答了正确的问题

以上是关于与朋友一起使用超类的私有变量的主要内容,如果未能解决你的问题,请参考以下文章

子类是不是从超类继承私有实例变量

Python类的私有化属性与私有方法使用

类变量与实例变量析构函数私有属性与私有方法

python 类的私有变量和私有方法

类的私有变量和私有方法

接口和抽象类的区别。