第十一週閱讀程式(5.4)
阿新 • • 發佈:2019-01-26
問題及程式碼:
/* *Copyright (c) 2016,煙臺大學計算機學院 *All rights reserved. *檔名稱:zwj.cpp *作 者:張偉晶 *完成日期:2016年5月10日 *版 本 號:v1.0 * *問題描述:閱讀程式,寫出執行結果 *輸入描述: *程式輸出: */ #include<iostream> using namespace std; class A { protected: int a,b; public: A(int aa,int bb):a(aa),b(bb){} void printA(){cout<<"a: "<<a<<"\tb: "<<b<<endl;} }; class B:public A { int c; public: B(int aa,int bb,int cc):A(aa,bb),c(cc){} void printB() { cout<<"a: "<<a<<"\tb: "<<b<<"\tc: "<<c<<endl; } }; int main() { A a(1,1); B b(2,3,4); //此處加入各個程式碼 A *p=&a; p->printA(); p=&b; p->printA(); // p->printB(); return 0; }
錯誤提示:
D:\cc\main.cpp|42|error: 'class A' has no member named 'printB'|
執行結果:
出錯原因:
//b是派生類的物件,p是基類的指標,所以p只能引用基類的部分,無法使用派生類的部分。