1. 程式人生 > >c++類中public,private,protected的用法與區別

c++類中public,private,protected的用法與區別

1、public修飾的成員變數
在程式的任何地方都可以被訪問,就是公共變數的意思,不需要通過成員函式就可以由類的例項直接訪問

2、private修飾的成員變數
只有類內可直接訪問,私有的,類的例項要通過成員函式才可以訪問,這個可以起到資訊隱藏

3、protected是受保護變數
類內和子類可直接訪問,也就是說,基類中有protected成員,子類繼承於基類,那麼也可以訪問基類的protected成員,要是基類是private成員,則對於子類也是隱藏的,不可訪問

protected型別的訪問機制與private一樣
在基類的派生類中,可以直接訪問繼承而來的protected成員,但是不能訪問private限制的成員.

所以在派生類中,可以訪問基類繼承而來的public和proected兩種型別的成員.

在public公有派生下,繼承而來的成員訪問許可權不變.protected派生下,public和protected都變成protected,private派生下,所有的繼承下來都是private了

至於不同型別的槽定義,也是同一個道理:
public slots:在這個區內宣告的槽意味著任何物件都可將訊號與之相連線。這對於元件程式設計非常有用,你可以建立彼此互不瞭解的物件,將它們的訊號與槽進行連線以便資訊能夠正確的傳遞。

protected slots:在這個區內宣告的槽意味著當前類及其子類可以將訊號與之相連線。這適用於那些槽,它們是類實現的一部分,但是其介面介面卻面向外部。

private slots:在這個區內宣告的槽意味著只有類自己可以將訊號與之相連線。這適用於聯絡非常緊密的類。