f1002.cpp
资源名称:c.rar [点击查看]
上传用户:puke2000
上传日期:2022-07-25
资源大小:912k
文件大小:2k
源码类别:

C#编程

开发平台:

Visual C++

  1. //=====================================
  2. // f1002.cpp
  3. // constructing derived class
  4. //=====================================
  5. #include<iostream>
  6. using namespace std;
  7. //-------------------------------------
  8. class Advisor{
  9.   int noOfMeeting;
  10. public:
  11.   Advisor(){ cout<<"Adviosrn"; }
  12.   Advisor(const Advisor& ){ cout<<"copy Advisorn"; }
  13.  ~Advisor(){ cout<<"~Advisorn"; }
  14. };//-----------------------------------
  15. class Student{
  16.   string name;
  17.   int semesterHours;
  18.   double average;
  19. public:
  20.   Student(string pName="noName"):name(pName),average(0),semesterHours(0){}
  21.   void addCourse(int hours, double grade){
  22.     double totalGrade = (semesterHours * average + grade);  //总分
  23.     semesterHours += hours;                                       //总修学时
  24.     average = semesterHours ? totalGrade/semesterHours : 0;  //平均分
  25.   }
  26.   void display(){
  27.     cout<<"name=""<<name<<"""<<", hours="<<semesterHours
  28.          <<", average="<<average<<"n";
  29.   }
  30.   int getHours(){ return semesterHours; }
  31.   double getAverage(){ return average; }
  32.  ~Student(){ cout<<"~Studentn"; }
  33. };//-----------------------------------
  34. class GraduateStudent : public Student{
  35.   Advisor advisor;
  36.   int qualifierGrade;
  37. public:
  38.   GraduateStudent(const string& pN, Advisor& adv)
  39.    :Student(pN), advisor(adv), qualifierGrade(0){}
  40.   void display(){
  41.     Student::display();
  42.     cout<<"GraduateStudentn";
  43.   }
  44.   getQualifier(){ return qualifierGrade; }
  45. };//-----------------------------------
  46. void fn(Advisor& advisor){
  47.   GraduateStudent gs("Yen Kay Doodle", advisor);
  48.   gs.display();
  49. }//------------------------------------
  50. int main(){
  51.   Advisor da;
  52.   fn(da);
  53. }//====================================
  54.