问题及代码:
/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:zwj.cpp *作 者:张伟晶 *完成日期:2016年5月9日 *版 本 号:v1.0 * *问题描述:教师兼干部类 *输入描述: *程序输出: */ #include<iostream> #include<string> using namespace std; //教师类 class Teacher { protected: string name; int age; string sex; string address; string tell; // 教师独有的 string title; public: Teacher(string ,int ,string ,string ,string ,string ); void display(); }; // 教师类构造函数 Teacher::Teacher(string nam ,int a, string se,string add,string tel ,string tit):name(nam),age(a),sex(se),address(add),tell(tel),title(tit){} ///教师类的display void Teacher::display() { cout<<"姓名:"<<name<<endl; cout<<"年龄:"<<age<<endl; cout<<"性别:"<<sex<<endl; cout<<"职称:"<<title<<endl; cout<<"地址:"<<address<<endl; cout<<"电话:"<<tell<<endl; } //干部类 class Cadre { protected: string name; int age; string sex; string address; string tell; // 干部类独有的 string post; public: Cadre(string ,int ,string ,string ,string ,string ); }; // 干部类构造函数 Cadre::Cadre(string nam ,int a, string se,string add,string tel ,string pos):name(nam),age(a),sex(se),address(add),tell(tel),post(pos){} /// 派生类 class Teacher_Cadre:public Teacher , public Cadre { private: double wages; public: Teacher_Cadre(string ,int ,string ,string ,string ,string ,string ,double); void show(); }; Teacher_Cadre::Teacher_Cadre(string nam,int a,string se,string add,string tel,string tit,string pos,double w):Teacher(nam,a,se,add,tel,tit),Cadre(nam,a,se,add,tel,pos),wages(w){} /// 派生类函数 void Teacher_Cadre::show() { Teacher::display(); cout<<"职务:"<<Cadre::post<<endl; cout<<"工资:"<<Teacher_Cadre::wages<<endl; } int main() { Teacher_Cadre zhang("味精加盐",35,"女","BeiJing road 511","13365432505","一级教师","教授",8881.8); zhang.show(); return 0; }
运行结果:
知识点总结:
如果通过派生类对方访问基类中被隐藏的同名成员,应使用基类名和作用域操作符(::)来限定
学习心得:
电话加“ ”