www.gusucode.com > 《C++高级语言程序设计》PPT及全书例子源代码-源码程序 > 《C++高级语言程序设计》PPT及全书例子源代码-源码程序/code/C++例题程序/第4章/s4_6/smain4_6.cpp
//Download by http://www.NewXing.com //主文件 //文件名:ch4_6\smain4_6.cpp #include "sclass4_6_student.h" //包含类定义头文件 //主测试程序 void main() { CPerson oCPerson("德华刘","男"); //构造一个CPerson类的对象 CStudent oCStudent("学友张","男",20050101); //构造一个CStudent类的对象 CTeacher oCTeacher("孔老师","男",5000); //构造一个CTeacher类的对象 //构建一个在职学生对象。 CTeacherAndStudent oCTeacherAndStudent("小巩俐", "女",400, 20050202); cout<<"\n1:-通过CPerson基类引用调用----"<<endl; TestReference(oCPerson); //以基类对象作引用参数 TestReference(oCStudent); //以派生类对象oCStudent作引用参数 TestReference(oCTeacher); //以派生类对象oCTeacher作引用参数 TestReference(oCTeacherAndStudent); //以派生类对象oCTeacherAndStudent作引用参数 cout<<"\n2:-通过CPerson基类指针调用----"<<endl; CPerson *pCPerson; //声明一个指向基类对象的指针 pCPerson = &oCPerson; //指向基类CPerson类对象 pCPerson->Show(); //调用CPerson类的Show() pCPerson = &oCStudent; //指向派生类CStudent类对象 pCPerson->Show(); //调用CStudent类的Show() pCPerson = &oCTeacher; //指向派生类CTeacher类对象 pCPerson->Show(); //调用CTeacher类的Show() pCPerson = &oCTeacherAndStudent; //指向二级派生类对象oCTeacherAndStudent pCPerson->Show();//调用CTeacher类的Show();说明通过基类指针可调用二级派生对象 cout<<"\n3:-通过一级派生类指针调用----"<<endl; CStudent *pCStudent = &oCTeacherAndStudent; pCStudent->Show(); //调用对象oCStudent的Show() CTeacher *pCTeacher = &oCTeacherAndStudent; pCTeacher->Show(); //调用对象oCTeacher的Show() cin.get(); }