成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺析C++類(lèi)訪(fǎng)問(wèn)控制問(wèn)題

開(kāi)發(fā) 后端
如果對(duì)象是C++類(lèi)的實(shí)例化,那么如何正確的進(jìn)行數(shù)據(jù)成員初始化??jī)?nèi)存映像中每個(gè)對(duì)象僅僅保留屬于自己的那份數(shù)據(jù)成員副本。

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

而成員函數(shù)對(duì)于整個(gè)C++類(lèi)而言卻是共享的,即一個(gè)C++類(lèi)只保留一份成員函數(shù)。那么每個(gè)對(duì)象怎樣和這些可以認(rèn)為是“分離”的成員函數(shù)發(fā)生聯(lián)系,即成員函數(shù)如何操作對(duì)象的數(shù)據(jù)成員?

記住this指針,無(wú)論對(duì)象通過(guò)(.)操作或者 (->)操作調(diào)用成員函數(shù),編譯時(shí)刻,編譯器都會(huì)將這種調(diào)用轉(zhuǎn)換成我們常見(jiàn)的全局函數(shù)的形式,并且多出一個(gè)參數(shù)(一般這個(gè)參數(shù)放在***個(gè)),然后將 this指針傳入這個(gè)參數(shù)。于是就完成了對(duì)象與成員函數(shù)的綁定(或聯(lián)系)。

實(shí)例化后就得到同一個(gè)C++類(lèi)的多個(gè)不同的對(duì)象,既然成員函數(shù)共享的,那么成員函數(shù)就可以操作對(duì)象的數(shù)據(jù)成員。
問(wèn)題是現(xiàn)在有多個(gè)對(duì)象,成員函數(shù)需要知道操作的是哪個(gè)對(duì)象的數(shù)據(jù)成員?#t#

比如有對(duì)象obj1和obj2,都屬于AC++類(lèi),AC++類(lèi)有public成員函數(shù)foo()如果obj1調(diào)用該函數(shù),編譯時(shí)會(huì)給foo函數(shù)傳入this指針,obj1,foo中操作obj1自身的成員就不用任何修飾,直接訪(fǎng)問(wèn),因?yàn)槠渲械臄?shù)據(jù)成員自動(dòng)根據(jù)this指針找到。

如果obj1調(diào)用該函數(shù),同樣可以訪(fǎng)問(wèn)同C++類(lèi)的其他對(duì)象的數(shù)據(jù)成員!那么你需要做的是讓foo函數(shù)知道是同C++類(lèi)對(duì)象中哪個(gè)對(duì)象的數(shù)據(jù)成員,一個(gè)解決辦法是傳入同C++類(lèi)其他對(duì)象的指針或引用,那么就可以操作同C++類(lèi)其他對(duì)象的數(shù)據(jù)成員。

 


public: protected: private:
public繼承 public protected ---
protected繼承 protected protected ---
private繼承 private private ---

通俗的講,同C++類(lèi)的對(duì)象間可以“互相訪(fǎng)問(wèn)”對(duì)方的數(shù)據(jù)成員,只不過(guò)訪(fǎng)問(wèn)途徑不是直接訪(fǎng)問(wèn).步驟是:通過(guò)一個(gè)對(duì)象調(diào)用其public成員函數(shù),此成員函數(shù)可以訪(fǎng)問(wèn)到自己的或者同C++類(lèi)其他對(duì)象的public/private/protected數(shù)據(jù)成員和成員函數(shù)(C++類(lèi)的所有對(duì)象共用)。

而且還需要指明是哪個(gè)對(duì)象的數(shù)據(jù)成員(調(diào)用函數(shù)的對(duì)象自己的成員不用指明,因?yàn)橛衪his指針;其他對(duì)象的數(shù)據(jù)成員可以通過(guò)引用或指針間接指明)

C++中public,protected,private訪(fǎng)問(wèn)小結(jié)***:private,public,protected方法的訪(fǎng)問(wèn)范圍.(public繼承下)private: 只能由該C++類(lèi)中的函數(shù)、其友元函數(shù)訪(fǎng)問(wèn),不能被任何其他訪(fǎng)問(wèn),該C++類(lèi)的對(duì)象也不能訪(fǎng)問(wèn)。

protected: 可以被該C++類(lèi)中的函數(shù)、子C++類(lèi)的函數(shù)、以及其友元函數(shù)訪(fǎng)問(wèn),但不能被該C++類(lèi)的對(duì)象訪(fǎng)問(wèn) public: 可以被該C++類(lèi)中的函數(shù)、子C++類(lèi)的函數(shù)、其友元函數(shù)訪(fǎng)問(wèn),也可以由該C++類(lèi)的對(duì)象訪(fǎng)問(wèn)注:友元函數(shù)包括兩種:設(shè)為友元的全局函數(shù),設(shè)為友元C++類(lèi)中的成員函數(shù)。

第二:C++類(lèi)的繼承后方法屬性變化: 使用private繼承,父C++類(lèi)的所有方法在子C++類(lèi)中變?yōu)閜rivate; 使用protected繼承,父C++類(lèi)的protected和public方法在子C++類(lèi)中變?yōu)閜rotected,private方法不變; 使用public繼承,父C++類(lèi)中的方法屬性不發(fā)生改變;

責(zé)任編輯:chenqingxiang 來(lái)源: 天極網(wǎng)
相關(guān)推薦

2010-01-21 13:48:30

C++基類(lèi)

2010-01-21 16:18:06

C++語(yǔ)言

2010-01-25 14:18:46

C++對(duì)象模型

2010-01-27 15:05:04

C++標(biāo)準(zhǔn)化

2010-01-18 10:01:48

C++中訪(fǎng)問(wèn)控制

2010-01-21 09:34:57

C++語(yǔ)法

2010-01-27 16:05:06

C++堆棧

2010-02-02 14:55:35

C++訪(fǎng)問(wèn)控制符

2010-01-20 10:19:55

C++數(shù)組

2010-01-27 17:16:52

C++構(gòu)造函數(shù)

2010-01-26 14:35:11

C++關(guān)鍵字

2021-10-19 14:04:28

C++類(lèi)型數(shù)字

2010-02-03 16:56:20

C++自定義類(lèi)

2010-01-27 15:46:15

學(xué)習(xí)C++效率

2009-08-06 14:43:10

C# Calculat

2009-08-21 17:24:06

C# SingleIn

2010-01-14 17:13:53

C++接口

2010-02-06 17:39:52

C++ strtok

2009-08-21 17:24:06

C# SingleIn

2009-08-28 16:51:32

C#線(xiàn)程控制
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产午夜久久久 | av在线一区二区三区 | www.色综合| 亚洲精品一区二区三区丝袜 | 四虎影院欧美 | 亚洲 自拍 另类 欧美 丝袜 | 久久国产一区二区三区 | 欧美综合在线观看 | 亚洲精品乱码久久久久久9色 | 欧美1级| 久久亚| 免费麻豆视频 | 成人精品久久 | 日韩国产中文字幕 | www.婷婷 | 国产在线精品一区二区三区 | 亚洲激情综合 | 亚洲精品乱码8久久久久久日本 | 国产精品欧美大片 | а√中文在线8 | 成年人网站国产 | 免费日本视频 | 久久成人免费 | 视频三区 | 日韩免费福利视频 | 精品一区二区在线视频 | 亚洲欧洲中文日韩 | 99精品久久久久久 | 欧美精品成人 | 羞羞涩涩在线观看 | 草久网 | 成人免费共享视频 | 久久久久久久久久一区二区 | 性欧美精品一区二区三区在线播放 | 欧美成人黄色小说 | 中文字幕在线观看视频网站 | 91精品国产综合久久精品图片 | 美日韩免费 | 国产三级日本三级 | 国产精品美女www爽爽爽视频 | 国产精品一区二区视频 |