c++學習筆記--protected成員

class Actor

{

   string _name;

   bool _gender;

public:

    ......

}

class Monk:public Actor

{

public:

patter();

}

void Monk::patter()

{

cout<<_name<<":_......"<<endl;

}

這樣的代碼,編譯器會報錯,error:“Actor::_name”:無法訪問private成員

現在問題產生了:我們希望在Monk類中訪問到基類的成員。但是又不希望該成員對外公開?

c++爲此提供了protected關鍵字,該保護類型成員的含義是:該類的派生類可以使用該類型的成員,但對外來說,他還是私有的。所以對於設計類的時候,就要考慮:如果該類會被繼承,那麼其可能被派生類訪問的成員需要聲明爲protected類型!

上列中,class Actor可以這樣寫:

class Actor

{

protected:

   string _name;

   bool _gender;

public:

    ......

}

這樣的話,在MonK::patter中訪問_name就不會出錯

但是類的對象依然是不能訪問protected的成員的

Monk tang;

tang._name="唐三藏";

error:“Actor::_name”:無法訪問protected成員

發佈了42 篇原創文章 · 獲贊 71 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章