作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
假设有两个类A和B:
class A {};
class B {};
下面两个例子在哪些方面不同?
示例 1:
class C : public A, public B {};
示例 2:
class C
{
//private
friend class A;
friend class B;
}
最佳答案
A friend
可以触摸任何它的 friend 的 private
部分(双关语只是轻微故意的!;)),但不能触摸 A
和 B
是 C
的一部分 - 这只是意味着“A
和 B
可以触及 C
的私有(private)位")。 private
之外的任何东西当然也可用于 A
和 B
,所以如果 C
有 protected
或 public
成员,也将可用。
当您继承时,A
和B
成为C
的一部分。 A
和 B
的任何 private
部分对 C
不可用。在“is-a”与“has-a”命名法中,C
现在是-a A
和 is-a B
- 在换句话说,它是从 A
继承而来的,所以它“从接口(interface)的角度来看表现得像 A
。
关于c++ - 友元和继承有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18085169/
我是一名优秀的程序员,十分优秀!