中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何淺析C++類訪問控制問題

發布時間:2021-10-27 17:28:26 來源:億速云 閱讀:94 作者:柒染 欄目:編程語言

本篇文章給大家分享的是有關如何淺析C++類訪問控制問題,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

在介紹C++類之前,首先要了解下什么是C++類?其實C++類是將數據成員和進行于其上的一系列操作封裝在一起,注意:成員函數可以操作數據成員,友元函數包括兩種:設為友元的全局函數,設為友元C++類中的成員函數。

而成員函數對于整個C++類而言卻是共享的,即一個C++類只保留一份成員函數。那么每個對象怎樣和這些可以認為是“分離”的成員函數發生聯系,即成員函數如何操作對象的數據成員?

記住this指針,無論對象通過(.)操作或者 (->)操作調用成員函數,編譯時刻,編譯器都會將這種調用轉換成我們常見的全局函數的形式,并且多出一個參數(一般這個參數放在***個),然后將 this指針傳入這個參數。于是就完成了對象與成員函數的綁定(或聯系)。

實例化后就得到同一個C++類的多個不同的對象,既然成員函數共享的,那么成員函數就可以操作對象的數據成員。
問題是現在有多個對象,成員函數需要知道操作的是哪個對象的數據成員?

比如有對象obj1和obj2,都屬于AC++,AC++類有public成員函數foo()如果obj1調用該函數,編譯時會給foo函數傳入this指針,obj1,foo中操作obj1自身的成員就不用任何修飾,直接訪問,因為其中的數據成員自動根據this指針找到。

如果obj1調用該函數,同樣可以訪問同C++類的其他對象的數據成員!那么你需要做的是讓foo函數知道是同C++類對象中哪個對象的數據成員,一個解決辦法是傳入同C++類其他對象的指針或引用,那么就可以操作同C++類其他對象的數據成員。


public:protected:private:
public繼承publicprotected---
protected繼承protectedprotected---
private繼承privateprivate---

通俗的講,同C++類的對象間可以“互相訪問”對方的數據成員,只不過訪問途徑不是直接訪問.步驟是:通過一個對象調用其public成員函數,此成員函數可以訪問到自己的或者同C++類其他對象的public/private/protected數據成員和成員函數(C++類的所有對象共用)。

而且還需要指明是哪個對象的數據成員(調用函數的對象自己的成員不用指明,因為有this指針;其他對象的數據成員可以通過引用或指針間接指明)

C++中public,protected,private訪問小結***:private,public,protected方法的訪問范圍.(public繼承下)private: 只能由該C++類中的函數、其友元函數訪問,不能被任何其他訪問,該C++類的對象也不能訪問。

protected: 可以被該C++類中的函數、子C++類的函數、以及其友元函數訪問,但不能被該C++類的對象訪問 public: 可以被該C++類中的函數、子C++類的函數、其友元函數訪問,也可以由該C++類的對象訪問注:友元函數包括兩種:設為友元的全局函數,設為友元C++類中的成員函數。

第二:C++類的繼承后方法屬性變化: 使用private繼承,父C++類的所有方法在子C++類中變為private; 使用protected繼承,父C++類的protected和public方法在子C++類中變為protected,private方法不變; 使用public繼承,父C++類中的方法屬性不發生改變;

以上就是如何淺析C++類訪問控制問題,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

吉木乃县| 岱山县| 长武县| 临沂市| 太仆寺旗| 白河县| 孟津县| 于田县| 南江县| 林口县| 淮滨县| 晋中市| 耒阳市| 福贡县| 东乌珠穆沁旗| 漳浦县| 平果县| 吐鲁番市| 安丘市| 汉沽区| 抚宁县| 北票市| 镇江市| 邹城市| 普宁市| 松溪县| 平度市| 七台河市| 台南市| 定西市| 山阳县| 惠安县| 河间市| 五华县| 凌海市| 渭源县| 临安市| 普洱| 西平县| 余庆县| 葵青区|