dee*_*ace 3 c++ inheritance friend
假设有两个A和B类:
class A {};
class B {};
Run Code Online (Sandbox Code Playgroud)
以下两个例子在哪些方面有所不同?
例1:
class C : public A, public B {};
Run Code Online (Sandbox Code Playgroud)
例2:
class C
{
//private
friend class A;
friend class B;
}
Run Code Online (Sandbox Code Playgroud)
Mat*_*son 24
一个friend可以触摸的private部分)无论它是朋友,但没有的(双关语只是轻微故意的!)A和B是一部分C-它只是意味着" A和B可触摸C的私人位").什么"低于" private,当然也可以向A和B,所以如果C有protected或public成员,这也将是可用的.
当你继承,A并B成为其中的一部分C.任何private部分A和B不可用C.在"is-a"与"has-a"命名法中,C现在是-a A和is-a B- 换句话说,它是继承自的A,所以它" A从界面的角度来看就像.