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

淺析C++類的繼承

開發 后端
在C++中,假如C++基類成員中的私有成員是別的類,但是對成員是不能訪問的,在進行對C++基類進行操作時,需要很高的細心。

也許大家對與C++基類還不是很了解,看完本文后對您一定會大有幫助,下文除了學習C++基類的基本性質外還對C++基類的新特性進行全面研究,希望大家能夠找到自己想要的東西。

基類中的公有成員在public派生時,不僅可以由派生類對象成員訪問,也可以由外部函數訪問;而在private派生時,C++基類中的公有成員雖然允許派生類對象中的成員訪問,不允許外部訪問。

可是再派生出下一級時,由于C++基類的所有成員已經被私有化,其它類成員也不可再訪問。實現只許有派生血緣關系的對象成員訪問的方法,是在基類中使用具有另一種訪問屬性的成員——protected成員。

protected成員是一種血緣關系內外有別的成員。它對派生對象而言,是公有成員,可以訪問;對血緣關系外部而言,與私有成員一樣被隱藏,此外,除了允許使用private與public兩種派生方式之外。C++還允許使用protected派生方式。現在將三種訪問屬性不同的成員經三種派生后在派生類中訪問屬性的變化情況總結如下表,是對上一表格的增進和補充。

派生方式 基類的public成員 基類的protected成員 基類的private成員 派生方式引起的訪問屬性變化概括
private派生 變為private成員 變為private成員 不可見 基類中的非私有成員都成為派生類中的私有成員
protected派生 變為protected成員 變為private成員 不可見 基類中的非私有成員在派生類中的訪問屬性都降一級
public派生 仍為public成員 仍為protected成員 不可見 基類中的非私有成員在派生類中的訪問屬性保持不變

需要注意的是,C++基類的private成員無論經過何種派生,在派生類中都是不可見的。

(1)友元函數

通常,類的私有成員只能由本類的成員訪問,外部函數只能訪問類的成員函數,再由成員函數訪問類的私有成員。但是,如果在某個類定義中用friend聲明了一個外部函數(也許是其他類的一個成員)后,這個外部函數便可以例外地訪問該類的任何私有成員。用friend聲明了的外部函數稱為這個類的友元函數。

當友元函數是另一個類的成員函數時,應當注意以下幾點:

A:友元函數作為一個類的成員函數時,除應當在它所在的類定義中聲明之外,還應當在另一個類中聲明它的友元關系,聲明語句的格式為:

friend 函數類型函數所在類名::函數名(參數列表);

B:友元函數在引用本類對象的私有成員時無需本類對象的引用參數,但在引用生命它是友元的類的對象中的私有成員時必須有友元類對象的引用參數。

C:一個類的成員函數作另一個類的友元函數時,必須先定義,而不是僅僅聲明它。

使用友元函數直接訪問對象的私有成員,可以免去再調用類的成員函數所需的開銷。同時,友元函數作為類的一個接口,對已經設計好的類,只要增加一條聲明語句,便可以使用外部函數來補充它的功能,或架起不同類對象之間聯系的橋梁。然而,它同時也破壞了對象封裝與信息隱藏,使用時需要謹慎小心。

(2)友元類

也可以把一個類而不僅僅是一個函數聲明為另一個C++基類的友元類。這時,只需先聲明它而不一定需要先定義。應當注意,友元關系是單向的,并且只在兩個類之間有效。即使類X是類Y的友元。

類Y是否是類X的友元也要看類X中是否有相應的聲明。即友元關系不具有交換性。若類X是類Y的友元,類Y是類Z的友元,也不一定就說明類X是類Z的友元,即友元關系也不具有傳遞性。當一個類要和另一個類協同工作時,使一個類成為另一個類的友元類是很有用的。這時友元類中的每一個成員函數都成為了對方的友元函數。

責任編輯:chenqingxiang 來源: NET130
相關推薦

2010-01-19 10:04:30

C++類

2010-01-20 09:32:30

C++類

2010-01-21 09:34:57

C++語法

2010-01-27 16:05:06

C++堆棧

2010-01-20 10:19:55

C++數組

2010-01-27 17:16:52

C++構造函數

2017-07-21 09:40:35

Python類、繼承和多態

2010-02-02 13:41:01

C++類繼承

2010-01-19 18:51:17

C++類

2010-01-26 14:35:11

C++關鍵字

2009-09-16 14:56:23

C++

2009-08-13 18:15:06

C#繼承構造函數

2021-10-19 14:04:28

C++類型數字

2010-02-03 16:56:20

C++自定義類

2010-01-27 15:46:15

學習C++效率

2010-01-14 17:13:53

C++接口

2010-01-21 16:18:06

C++語言

2010-01-25 14:18:46

C++對象模型

2010-02-06 17:39:52

C++ strtok

2009-08-06 14:43:10

C# Calculat
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人免费视频网站在线观看 | 成人不卡视频 | 欧美日韩国产一区二区三区 | 久久综合九色综合欧美狠狠 | 国产精品久久久久久久久久免费 | av中文在线观看 | 国产综合在线视频 | 亚洲国产成人在线视频 | 欧美日本韩国一区二区 | 国产日韩欧美激情 | 日本三级全黄三级a | 91精品国产综合久久婷婷香蕉 | 99视频入口 | 亚洲网站观看 | 久久久久国产 | 日韩精品一区二区三区中文在线 | 五月激情婷婷网 | 欧美中文一区 | 伊人网99| 卡通动漫第一页 | 久久久国产一区二区三区四区小说 | 91在线视频国产 | 日韩精品在线视频 | 日韩视频一区在线观看 | 精品免费国产一区二区三区 | 99热在线播放 | www97影院| 毛色毛片免费看 | 亚洲精品av在线 | 国产午夜视频 | 久草久 | 国产极品车模吞精高潮呻吟 | 99爱视频 | 国产一级在线 | 91传媒在线观看 | 免费观看色 | 三级成人在线 | 91精品久久 | 亚洲免费视频一区 | 综合久久av | 天天天操 |