第十二週作業1

#include<iostream>  
  
#include<string>  
  
using namespace std;  
  
class Student //(1)修改student類中各數據成員和成員函數的訪問限定符,並觀察發生的現象  
{  
public:   
    Student(int n, string nam, char s) ;  
    void show();  
    ~Student( ){ }   
protected:   
    int num;  
    string name;  

	char sex ;   

};  
  
class Student1 : public Student //(2)修改此處的繼承方式,並觀察發生的現象  
{ public:   
    Student1(int n, string nam, char s, int a, string ad) ;  
    void show1( );  
    ~Student1( ){ }   
 private:   
    int age;   
    string addr;   
};  
  
Student :: Student(int n, string nam, char s)   
{   num = n;  
    name = nam;  
    sex = s;   
}  
void Student :: show()  
{   cout << "num: " << num << endl;  
    cout << "name: " << name << endl;  
    cout << "sex: " << sex << endl << endl;  
}  
  
Student1 :: Student1(int n, string nam, char s, int a, string ad) : Student(n, nam, s)   
{   age = a;   
    addr = ad;  
}  
  
void Student1 :: show1( )  
{   cout << "num: " << num << endl;  
    cout << "name: " << name << endl;  
    cout << "sex: " << sex << endl;  
    cout << "age: " << age << endl;  
    cout << "address: " << addr << endl << endl;  
}  
  
int main( )  
{   Student1 stud1(10010, "Wang-li", 'f', 19, "115 Beijing Road,Shanghai");  
    Student1 stud2(10011, "Zhang-fun", 'm', 21, "213 Shanghai Road,Beijing");  
    Student stud3(20010, "He-xin", 'm');  
    stud1.show1( );   
    stud2.show( );   
    stud3.show( );   
    system("pause");  
    return 0;  
}  
/* 
修改:
 

  1.把繼承方式改爲protected,則編譯器提示錯誤爲: error C2247: “Student::show”不可訪問,因爲“Student1”使用“protected”從“Student”繼承 
說明說明受保護成員函數不能夠被對象直接調用 
 
 

  2.把繼承方式改爲private,則編譯器提示錯誤爲: error C2247: “Student::show”不可訪問,因爲“Student1”使用“private”從“Student”繼承 
說明說明私有成員函數和受保護成員函數一樣,都不能被對象直接調用! 
 

*/ num: 10010
name: Wang-li
sex: f
age: 19
address: 115 Beijing Road,Shanghai
num: 10011
name: Zhang-fun
sex: m
num: 20010
name: He-xin
sex: m
請按任意鍵繼續. . .
 
 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章