理解基類中成員的訪問限定符和派生類的繼承方式

2021-06-06 07:05:47 字數 1623 閱讀 9069

#include#includeusing namespace std;

class student //(1)修改student類中各資料成員和成員函式的訪問限定符,並觀察發生的現象

protected:

int num;

string name;

char *** ;

};class student1: public student //(2)修改此處的繼承方式,並觀察發生的現象

改動一:

如果把class student1: public student中的public 改為private,則編譯器提示錯誤為:'show' : cannot access public member declared in class 'student'!

改動二:

如果把class student1: public student中的public 改為protected,則編譯器提示錯誤為:'show' : cannot access public member declared in class 'student'!

改動三:

當我把student中的public 改為protected,編譯器會出現3個錯誤,第乙個為'student::student' : cannot access protected member declared in class 'student'! 第二個為:'student::~student' : cannot access protected member declared in class 'student'!  第三個為:'show' : cannot access protected member declared in class 'student'!

改動四:

當我把student中的public 改為private,編譯器會出現4個錯誤,第乙個為'student::~student' : cannot access private member declared in class 'student'!  第二個為:'student::student' : cannot access private member declared in class 'student'!      第三個為:'show' : cannot access private member declared in class 'student'!

自我總結:

公用繼承方式:基類的公用成員和受保護成員在繼承類中依然是這樣,基類的私有成員為基類私有,不能被繼承類的成員函式呼叫。

私有繼承方式:基類的公用成員和受保護成員在繼承類中變為私有,基類的私有成員仍為基類私有,不能被繼承類的成員函式呼叫。

受保護繼承方式:基類的公用成員和受保護成員在繼承類中變為受保護成員,基類的私有成員為基類私有,不能被繼承類的成員函式呼叫。

java 成員 類 包認識及成員類的訪問限定符

main 乙個專案中可有多個main方法但是,要選擇進行編譯所以,最好只寫乙個main方法。package 乙個專案可以有多個包,且包內也可以有包 並且包名可以和類名一樣,但是包名的目錄,而類名指定乙個客觀物件。class 乙個抽象類是可以繼承乙個具體類的。新建的乙個頁面只有乙個類可以是public...

java 成員 類 包認識及成員類的訪問限定符

main 乙個專案中可有多個main方法但是,要選擇進行編譯所以,最好只寫乙個main方法。package 乙個專案可以有多個包,且包內也可以有包 並且包名可以和類名一樣,但是包名的目錄,而類名指定乙個客觀物件。class 乙個抽象類是可以繼承乙個具體類的。新建的乙個頁面只有乙個類可以是public...

C 中const限定符的理解

一 const變數 1 建立之後不可修改 有時候我們定義乙個變數,並且不希望程式其他部分改變它,可以用const對這個變數進行修飾。const int a 520 a 23 如上,a被定義成const型別,如果再對a重新賦值,會出現assignment of read only variable a...