1. 程式人生 > >C++_基類成員在派生類中的訪問屬性——總結

C++_基類成員在派生類中的訪問屬性——總結

首先回顧一下三種成員訪問限定符:

public(公用的):既可以被本類中的成員函式所引用,也可以被類的作用域內的其他函式(即類外)引用。

private(私有的):只能被本類中的成員函式引用,類外不能呼叫(友元類除外)

protected(受保護的):不能被類外訪問,但可以在派生類的成員函式訪問。

接下來就用一張表總結一下基類成員在派生類中的訪問屬性:


可以這麼簡單的認為:

1、凡是基類中私有的,派生類都不可訪問。

2、基類中除了私有的成員,在派生類中的訪問屬性總是 以安全性高{ 繼承方式,基類的訪問屬性 } 的方式呈現。(安全性級別:私有>保護>公有)

參考資料:《C++程式設計(第二版)》——譚浩強

相關推薦

C++_成員派生訪問屬性——總結

首先回顧一下三種成員訪問限定符: public(公用的):既可以被本類中的成員函式所引用,也可以被類的作用域內的其他函式(即類外)引用。 private(私有的):只能被本類中的成員函式引用,類外不能呼叫(友元類除外) protected(受保護的):不能被類外訪問,但可以

C++模板派生訪問成員必須顯式呼叫(作用域限定)

一個常見的派生類訪問基類成員變數的例子:template<int dim>class A{public:A():b(2){}int b;};template<int dim>class B:public A<dim>{public:   

C++派生成員的三種訪問規則

、公有繼承的訪問規則當類的繼承方式為公有繼承時,基類的public成員和protected成員被繼承到派生類中仍作為派生類的public成員和protected成員,派生類的其它成員可以直接訪問它們。但是,類的外部使用者只能通過派生類的物件訪問繼承來的public成員。基類的private成員在私有派生類中是

第三十一節 C++ 繼承之如何在派生呼叫被覆蓋的函式成員(方法)

#include <iostream> using namespace std; /*有些基類的方法在派生類被覆蓋,但有時我們需要呼叫基類的方法。 * 這裡提供了兩種方式去呼叫基類被覆蓋的

C++Primer_Chap15_面向物件程式設計_List02_定義派生_筆記

class Quote{ public: Quote() = default; Quote(const std::string &book, double sales_price): bookNo(book), price(sales_price){} std::str

詳解C++派生的轉換以及虛

原文來源:https://www.jb51.net/article/72586.htm# C++基類與派生類的轉換 在公用繼承、私有繼承和保護繼承中,只有公用繼承能較好地保留基類的特徵,它保留了除建構函式和解構函式以外的基類所有成員,基類的公用或保護成員的訪問許可權在派生類中全部都按原樣保留下來

C++派生

派生類的繼承方式總結: 繼承方式 說明 public 基類的public和protected的成員被派生類繼承後,保持原來的狀態 private 基類的public和protected的成員被派生類繼承後,變成派生類的private成員 protected

C++繼承和派生——派生成員的標識與訪問(作用域分辨符和虛技術)

在派生類中,成員可以按訪問屬性劃分為以下四種: 不可訪問成員 準確說是不可以直接訪問。這種成員是從基類私有成員繼承而來,派生類或者派生類物件的模組都無法訪問這些成員,當然,派生類繼續派生的新類也是無法訪問它們的。 私有成員 這個可以是從

派生的指針和成員函數調用原理

而且 font 重新定義 -s 繼承 轉型 center span enter 基類與派生類的指針和成員函數調用原理 1.如果以一個基礎類指針指向一個衍生類對象(派生類對象),那麽經由該指針只能訪問基礎類定義的函數(靜態聯翩) 2.如果以一個衍生類指針指向一個基礎類對象,必

C++派生的構造函數和析構函數的調用

str 生命 ons stream all 兩種 col 生命期 析構函數 C++基類和派生類的構造函數和析構函數的調用 1.調用順序   當創建一個派生類的對象時,系統首先自動創建一個基類對象,也就是說,在調用派生類構造函數創建派生類對象之前,系統首先調用基類的構造函數創

cocos2d-x lua 面向物件 ===> 呼叫派生已經被過載了的函式

基類: local Base = class("Base", function () return cc.Layer:create() end) function Base:ctor( ... ) end function Base:test(self, ...

C#派生_161103

C#不支援私有繼承 派生類應當那個被看做是基類所具有的特性和功能的繼承和擴充套件,而不是簡單的派生類大於基類派生類不能選擇性的繼承基類的方法和屬性,必須繼承基類的所有特性和方法派生類可以在繼承基類的基

C++-繼承:派生的關係

成員函式的重定義和名字隱藏 基類的資料成員和成員函式在派生類中都有一份拷貝,派生類能夠直接訪問從基類繼承而來的public和protected成員,且只能夠通過這兩類成員訪問從基類繼承而來的private成員。 派生類不僅可以新增基類沒有的新成員,而且可以對

OOP1(定義派生)

isbn 類的構造函數 不能 turn title item 內存 derived 構造 面向對象程序設計基於三個基本概念:數據抽象,繼承和動態綁定 數據抽象是一種依賴於接口和實現分離的編程技術。繼承和動態綁定對程序的編號有兩方面的影響:一是我們可以更容易地定義與其它類相似

派生,父指針指向子對象

namespace 簡單工廠模式 為什麽 對象創建 簡單工廠 pos 釋放 自己的 分享 先看一段代碼: 1 #include<iostream> 2 3 using namespace std; 4 5 class Base{ 6 publi

成員函數重載/重寫(覆蓋)/重定義(隱藏)的區別

類成員 arch logs AI detail 重載 article html http https://blog.csdn.net/ranxiaoxu123/article/details/52291385 https://www.cnblogs.com/renyuan

派生,記憶體分配情況

派生類繼承基類       記憶體分配時,是在於基類物件不同的記憶體地址處,按基類的成員變數型別,開闢一個同樣的型別空間,但注意開闢後派生物件的空間,不是複製基類的成員的值,而是僅僅開闢那種成員型別的空間,未初始化時,裡面存在的數是不確定的 &nbs

MFCCWnd及其派生對話方塊、訊息處理、視窗操作

CWnd類 我們在螢幕上看到的所有物件都和視窗有關,它們或者派生於CWnd,屬繼承關係,如對話方塊、工具欄、狀態列、子控制元件;或者被CWnd合成,屬服務員與服務物件關係,如圖示、選單、顯示裝置。 CWnd類封裝的視窗操作主要包含視窗的建立和銷燬、操作視窗風格、操作視窗狀態

關於派生相關,以及繼承

多型就是一個基類可以指向其任意派生類的能力,即基類的指標或者引用可以指其派生類,作用就就是希望使用派生具體的實現介面功能 1.多型性只存在類的繼承層次中 2.必須使用基類的指標或者引用才有效. 3.多型可以動態呼叫的函式必須是由virtual宣告的函式 4.多型性是執行時的動態載入,不是連結時也不是

Java派生

   從外部看來,派生類是一個與基類具有相同介面的新類,或許還會有一些額外的的方法和域 。但繼承並不僅僅是類的複用。當建立了一個派生類的物件時,該類包含了一個基類的子物件。這個子物件和你用基類直接建立的物件沒有什麼兩樣。二者的區別在於,後者來自於外部,而基類的子物件來自於派生類物件的內部。對基類的子物件初始