#include <iostream> #include <string> using namespace std; class Date { friend class person; public: int year,month,day; friend ostream & operator <<( ostream&os, const Date&date ) { os<<date.year<<""<<date.month<<""<<date.day; return os; } Date(int year=2000,int month=1,int day=1):year(year),month(month),day(day) {} void print() { cout<<year<<","<<month<<","<<day; } }; class person { public: string Name; string Num; Date brith; person(string Name="张三", string Num="123456789", int year=2000,int month=1,int day=1): Name(Name),Num(Num),brith(year,month,day) {} string GetName() { return Name; } string GetNum() { return Num; } Date Getbrith() { return brith; } }; bool compare(person&p1,person&p2) { if(person&p1.year>person&p2.year) { return true; } else { return false; } } if(compare(person&p1.year,person&p2.year)) { cout<<"p1的年龄大"<<endl; } else { cout<<"p2的年龄大"<<end; } class student: private person { private: int StuNum; }; class teacher:public person { private: Date Time; }; class CTA :public student,public teacher { private: int No; }; int main() { person p1("张三","123456789",2000,1,1); person p2("李四","123456789",2001,1,1); cout<<"序号"<<endl; cout<<" 1 "<<endl; cout<<" "<<p1.GetName()<<endl; cout<<" "<<p1.GetNum()<<endl; cout<<" "<<p1.Getbrith()<<endl; cout<<" 2 "<<endl; cout<<" "<<p2.GetName()<<endl; cout<<" "<<p2.GetNum()<<endl; cout<<" "<<p2.Getbrith()<<endl; }改进后的程序