c++习题1_F_继承与组合
2014-06-13 22:37
357 查看
/* *作者:lws *完成时间:2014/6/13 *描述:通过对Teacher和BirthDate使用继承和组合的方式设计Professor *输入:2001 Huang m 1970 1 1 1994 5 26 *输出:num:2001 name:Huang sex:m birthday:1994/5/26 */ #include <iostream> #include <string> using namespace std; class BirthDate //生日类 { public: BirthDate(int y,int m,int d):year(y),month(m),day(d){} void SetBirthDay(int y,int m,int d) { year=y; month=m; day=d; } friend ostream& operator<<(ostream& out,BirthDate &p)//运算符重载<< { out<<" birthday:"<<p.year<<"/"<<p.month<<"/"<<p.day; return out; } private: int year; int month; int day; }; class Teacher //教师类 { public: Teacher(int n,string na,char s):num(n),name(na),sex(s){} friend ostream& operator<<(ostream &out,Teacher &p) { out<<"num:"<<p.num<<" name:"<<p.name<<" sex:"<<p.sex; return out; } protected: int num; string name; char sex; }; class Professor:public Teacher //教授类 { public: Professor(int n,string na,char s,BirthDate bir):Teacher(n,na,s),birthday(bir){} void SetBirthDay(int y,int m,int d) { birthday.SetBirthDay(y,m,d);//调用BirthDate的成员函数重设时间 } friend ostream& operator<<(ostream& out,Professor &p) { out<<"num:"<<p.num<<" name:"<<p.name<<" sex:"<<p.sex<<p.birthday; return out; } private: BirthDate birthday; }; int main() { int num; string name; char sex; int year,month,day; cin>>num>>name>>sex; cin>>year>>month>>day; Professor prof(num,name,sex,BirthDate(year,month,day)); cin>>year>>month>>day; prof.SetBirthDay(year,month,day); cout<<prof<<endl; return 0; }
运行结果:
相关文章推荐
- ojC++习题 继承与组合
- OJ第三批——Problem H:C++习题 继承与组合
- C++习题 继承与组合
- [YTU]_2476(C++习题 继承与组合)
- 『C/C++』C++中的继承和组合区别使用
- C++第十二周【任务4】类的组合与继承
- C++中的继承和组合区别使用
- 高质量C++/C编程指南 -- 第10章 类的继承与组合
- C++的新类创建:继承与组合
- in c++读后感--理解继承和组合
- C/C++日常学习总结(第四篇)共同基类产生的二义性和继承与组合的区别
- 第十二周C++【任务4】类的组合与继承。
- 高质量C++/C编程指南 -- 第10章 类的继承与组合
- C++ 06 继承与组合 (has-a is-a) 以及类大小的计算 虚基类对内存模型的影响(不考虑虚函数)
- c++习题1_B_c++继承改错
- C++ 编程思想——继承和组合
- 读书笔记-Thinking in C++-第14章 继承和组合
- 高质量C++/C编程指南 -- 第10章 类的继承与组合
- 《读java编程思想》 c++与java的不同(C++进阶 继承 组合 多态)
- C++——三种继承方式与三种访问权限的相互组合