C++作用域限定符:private/public與protected


C++的作用域限定符其實涉及到了C++特性中的封裝和繼承。

public/private:涉及類的封裝特性。對於一個類需要對外展示的部分,我們可以將其聲明為public,對於不希望對外展示的,我們將其聲明為private。
protected:涉及類的繼承特性。對於一個子類想擁有父類的某個功能,但是父類又不希望子類對外展示,這時候就可以將成員聲明為protected屬性,只可以父類和子類使用。

注:本文中所說的類以及父類、子類均是抽象類的概念,不是類對象。

public

類的實現就是對外提供某些功能,外部通過調用類提供的某些接口引入類的功能。這就要求類成員必須聲明為public,從而才能被外部所調用,這是類對外展示的部分。
而對外展示的功能函數有時候也依賴本類中其他的函數實現,但是被依賴的這部分我們只希望在類內部使用,不希望外部看到,這就涉及到了private特性。

private

定義為private屬性的類成員,只能被本類調用,這部分成員在本類中是“隱藏”成員,即為了實現其他接口,“自己情願退居幕后”,不向外展示。

proteced

其實protected是為繼承而作的。類有繼承的屬性,如果一個父類有某個功能,而這個功能又不希望被外部看到,但是子類確實也需要這個功能,這個時候怎么辦呢?此時就可以將父類的這個功能函數定義成protected屬性的,子類繼承后,該函數只能在父類和子類內部可以使用,外部無法使用。也就保存了該功能在父類中的初衷。
當然了上面說的都是作用域限定符在一個類內部的說明,private/public/protected也可以用於繼承,其實到底要使用哪種繼承特性,可以參考上面總結的作用域限定符在一個類中的作用,因為歸根結底,類繼承后就是一個類。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM