C++中公有繼承、保護繼承、私有繼承的區別

weixin_30588675發表於2020-04-05

原文部落格:http://www.cnblogs.com/itachi7/archive/2012/07/03/2575433.html

公有繼承時基類中各成員屬性保持不變,基類中private成員被隱藏。派生類的成員只能訪問基類中的public/protected成員,而不能訪問private成員;派生類的物件只能訪問基類中的public成員。

私有繼承時基類中各成員屬性均變為private,並且基類中private成員被隱藏。派生類的成員也只能訪問基類中的public/protected成員,而不能訪問private成員;派生類的物件不能訪問基類中的任何的成員。

保護繼承時基類中各成員屬性均變為protected,並且基類中private成員被隱藏。派生類的成員只能訪問基類中的public/protected成員,而不能訪問private成員;派生類的物件不能訪問基類中的任何的成員。

//公有繼承                      物件訪問    成員訪問
public    -->  public              Y         Y
protected -->  protected           N         Y
private   -->  private             N         N

//保護繼承                      物件訪問    成員訪問
public    -->  protected           N         Y
protected -->  protected           N         Y
private   -->  protected           N         N

//私有繼承                      物件訪問    成員訪問
public    -->  private             N         Y
protected -->  private             N         Y
private   -->  private             N         N

 

轉載於:https://www.cnblogs.com/liuyangofficial/p/7052934.html

相關文章