【问题标题】: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_Test和C之间有关系吗?
  • @Rod_Algonquin 当然可以。 coliru.stacked-crooked.com/a/74d909f443247fa4

标签: c++ inheritance private friend


【解决方案1】:

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

【讨论】:

  • 谢谢安德罗。那么它与Java不同吗?假设 A 类有一个虚拟公共函数来返回 a,在这种情况下,B 类会发生什么?
  • @xieziban A 类将是一个多态类,B 类现在可以转换为 A 类,但 A 类不能向下转换
  • @Rod_Algonquin:我不确定是否回答了正确的问题
猜你喜欢
  • 1970-01-01
  • 2015-11-24
  • 2021-08-16
  • 1970-01-01
  • 2019-11-18
  • 1970-01-01
  • 1970-01-01
  • 2014-03-23
  • 1970-01-01
相关资源
最近更新 更多