——C++訪問類別除了private、public,還有protected,
對外部世界來說,保護成員的行為與私有 成員相似,
對于派生類來說,保護成員的行為與公有成員相似,
用于資料成員時的缺陷,
用于成員函式時的優點,
對外部世界,
關鍵字protected與private相似,在類外只能用公有類成員來訪問protected部分中的類成員,
對派生類,
關鍵字protected與public相似,派生類可以直接訪問基類的保護成員,
缺陷,
使用保護資料成員可以簡化代碼的撰寫作業(派生類可以直接使用基類的protected資料成員,而資料成員以前通常是private成員,這將需要使用額外的基類公有訪問函式或保護函式來查看或修改基類private資料成員,并且公有訪問函式對外界開放,而protected資料成員只對派生類可見),但存在設計缺陷,
盡管如此,若資料成員是受保護的,類被設計成只能通過成員函式才能修改該資料成員,protected屬性將忽略該保護措施,允許直接訪問,這實際上使protected資料成員成為了公有變數(對派生類而言),
void BrassPlus::Reset(double amt) { balance = amt; // balance is protected }
因此最好對類資料成員采用私有訪問控制,不要使用保護訪問控制;同時通過基類方法使派生類能夠訪問基類資料,
優點,
對于成員函式來說,保護訪問控制很有用,它讓派生類能夠訪問公眾不能使用的內部函式,
-----
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/4986.html
標籤:C++
上一篇:C++ 虛成員函式和動態聯編
下一篇:C++ 抽象基類
