c++筆記:派生類到基類轉換到可訪問性
要確定到基類的轉換是否可訪問,可以考慮基類的public成員是否可訪問,如果可以,轉換是可以訪問的,否則,轉換是不可訪問的。
如果是public繼承,則使用者**和後代類都可以使用派生類到基類的轉換。
如果類是使用private或protected繼承派生的,則使用者**不能將派生型別物件轉換為基類物件。
如果是private繼承,則從private繼承類派生的類不能轉換為基類。
如果是protected繼承,則後續派生類的成員可以轉換為基類型別。
無論是什麼派生訪問標號,派生類本身都可以訪問基類的public成員,因此,派生類本身的成員和友元總是可以訪問派生類到基類的轉換。
class a{};
class b:public a};
class c:protected a};
class d:private a};
class e:public b};
class f:public c};
//從private繼承類派生的類不能轉換為基類。
class h:public d};
void inherite_test()
C 筆記 派生類到基類轉換到可訪問性
使用者 指的是除友元函式,成員函式之外的 後代類,不僅僅指第一級派生類,還包括間接派生自基類的後續的派生類。派生類,這裡專指 直接繼承類。include using namespace std class a class b public a class c protected a class d ...
派生類到基類的轉換 和基類到派生類的轉換
一 基類與派生類的轉換 3種繼承方式 公用 保護 私有繼承 中,公用派生類才是基類真正的子型別,它完整地繼承了基類的功能。不同型別資料之間在一定條件下可以進行型別的轉換。基類與派生類物件之間是否也有賦值相容的關係,可否進行型別間的轉換?回答是可以的。基類與派生類物件之間有賦值相容關係,由於派生類中包...
C 派生類向基類轉換的可訪問性
派生類向基類到轉換是否可訪問由使用該轉換到 決定,同時派生類到派生訪問說明符也會有影響。假定d繼承自b 上買的定義是摘自c primer 裡面的定義,聽起來是不是很繞口,所以下面就結合 通俗的解釋下 先看第一問吧,是什麼意思,定義三個類如下 include define cout str std c...