生活随笔
收集整理的這篇文章主要介紹了
C++继承方式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
一句話總結:繼承方式有三種:public、protected和private。繼承后父類成員屬性為private子類不能訪問,成員屬性為protected和public,子類根據繼承方式有對應的訪問權限。
從基類派生出派生類,派生類繼承基類的繼承方式有三種:public、protected和private。在未指定的情況下編譯器會默認繼承方式為protected或private方式。
1) public繼承方式
- 基類中所有public成員在派生類中為public屬性;
- 基類中所有protected成員在派生類中為protected屬性;
- 基類中所有private成員在派生類中不可訪問。
具體示例可以參考上一節中的例1,在此就不再重新舉例了。
2) protected繼承方式
- 基類中的所有public成員在派生類中為protected屬性;
- 基類中的所有protected成員在派生類中為protected屬性;
- 基類中的所有private成員在派生類中仍然不可訪問。
enum language{cpp, java, python,javascript, php, ruby};class book
{
public:void setprice(double a);double getprice()const;void settitle(char* a);char * gettitle()const;void display();
private:double price;char * title;
};class codingbook: protected book
{
public :void setlang(language lang);language getlang(){return lang;}
private:language lang;
};
3) private繼承方式
- 基類中的所有public成員在派生類中均為private屬性;
- 基類中的所有protected成員在派生類中均為private屬性;
- 基類中的所有private成員在派生類中均不可訪問。
enum language{cpp, java, python,javascript, php, ruby};class book
{
public:void setprice(double a);double getprice()const;void settitle(char* a);char * gettitle()const;void display();
private:double price;char * title;
};class codingbook: private book
{
public :void setlang(language lang);language getlang(){return lang;}
private:language lang;
};
總結
以上是生活随笔為你收集整理的C++继承方式的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。