第十二週專案1.2長頸鹿類對動物類的繼承。。private繼承方式下
阿新 • • 發佈:2019-02-02
/* *程式的版權和版本宣告部分: *Copyright(c)2014,煙臺大學計算機學院學生 *All rights reserved. *檔名稱:長頸鹿類對動物類的繼承 *作者:王雅萍 *完成日期:2014 年 5 月 13 日 *版本號:v1.0 *對任務及求解方法的描述部分: *輸入描述:無 *問題描述:在下面的程式中要求的位置寫下注釋,宣告相應的語句在語法上是否正確,為什麼。 在第一個程式中給出了示例,其他位置請仿照完成。 在上機時,可以編譯程式加以驗證,閱讀錯誤給出的英文提示,並加以理解。 *程式輸出:- *問題分析: *演算法設計: *我的程式: */ #include <iostream> using namespace std; class Animal { public: Animal() {} void eat() { cout << "eat\n"; } protected: void play() { cout << "play\n"; } private: void drink() { cout << "drink\n"; } }; class Giraffe: private Animal { public: Giraffe() {} void StrechNeck() { cout << "Strech neck \n"; } void take() { eat(); // 正確,私有繼承下,基類的公有成員對派生類物件可見 drink(); // 錯誤,私有繼承下,基類的私有成員對派生類物件不可見 play(); // 正確,私有繼承下,基類的受保護成員對派生類物件可見 } }; int main() { Giraffe gir; gir.eat(); // 錯誤,私有繼承下,Giraffe的物件類外不可訪問Animal中的成員 gir.play(); // 錯誤,Animal is not an accessible base of Giraffe.私有繼承下,Giraffe的物件類外不可訪問Animal中的成員 gir.drink(); // 錯誤,私有繼承下,Giraffe的物件類外不可訪問Animal中的成員 return 0; }