如果乙個類的成員被定義成該類的私有成員,那麼只有基類的成員和友元可以訪問類中的私有成員。同時派生類也無法訪問基類的私有成員,派生類的例項物件也無法訪問這些私有成員。如果派生類為公有繼承,基類成員保持自己的訪問級別:基類的public成員為派生類的public成員,基類的protected成員為派生類的protected成員。如果是受保護成員,基類的public和protected成員在派生類中為protected成員。如果是私有繼承,基類中的所有成員在派生類中為private成員。
對於私有和保護繼承,派生類中的函式成員可以呼叫基類中的資料成員(但是基類中的所有成員在派生類中都是私有的),派生類例項後的物件是無法訪問基類中的那些成員的。
class fruit
~fruit() {}
void print()
protected:
string name;
private:
int quality;
}; void print() };
int main()
return 0;
}
如果想要使用基類中的資料成員的話,可以在public後面加上using fruit::name;
void print() };
int main()
return 0;
}2、基類和派生類的轉換
可以使用派生類的物件給基類的物件進行初始化操作。也存在從派生型別引用到基類型別引用的自動轉換,即,可以將派生類物件的引用轉換為基類子物件的引用,對指標也類似。但是沒有從派生類物件到基類物件的直接轉換。
如果是public繼承,則使用者可以將派生類轉換成基類。但是如果派生類是private或protected繼承派生的,則無法將派生類物件轉換成基類物件。private繼承的話,派生類無法轉換成基類。protected繼承,則派生類的成員可以轉換成基類型別。
C 基礎 繼承
繼承class 派生類 訪問限定符 基類 public protected private 類成員函式 友元函式 子類函式 類物件 子類繼承類父類所有的成員變數和成員函式。與訪問限定 符無關。訪問限定符只是限制了訪問。子類訪問父類成員變數,把父類成員變數訪問限制符,改為 protected 子類內部...
C 繼承基礎
一,繼承和多型 類之間的繼承 基類,父類 成員變數 描述類的屬性 成員函式 功能 派生類 子類 體現出與基類的不同 繼承 基類與派生類之間訪問許可權 1.public繼承 基類裡面的公有成員變數被繼承後在派生類中也是公有的 可以在類外被訪問 基類裡面的保護成員變數被繼承後在派生類中可以被訪問,在派生...
C 繼承之繼承基礎
一 繼承的相關概念 繼承是 種復 段,在繼承關係 子類繼承父類的成員,由此達到復 的 的。通過繼承定義乙個類,繼承是型別之間的關係建模,共享公有的東西,實現各自本質不同的東西。二 三種訪問限定符 繼承關係 三 繼承的重要說明1.子類擁有父類的所有成員變數和成員函式 2.子類就是一種特殊的父類 3.子...