第19讲(派生类的构造函数和析构函数).docVIP

  • 5
  • 0
  • 约6.19千字
  • 约 11页
  • 2016-08-21 发布于重庆
  • 举报

第19讲(派生类的构造函数和析构函数).doc

第19讲(派生类的构造函数和析构函数)

第19讲 教学内容 7.4 派生类的构造和析构函数 7.4.1构造函数 7.4.2 拷贝构造函数 7.4.3析构函数 教学重点和难点 1派生类的构造函数和析构函数的一些特点 教学方法: 通过程序举例演示,讲解基类有默认构造函数和无默认构造函数时,派生类的构造函数的特点,在此基础上,讲解派生类的析构函数。 教学学时 2 学时 教学过程 一派生类的构造函数的特点: 1 当基类中声明有默认形式的构造函数或未声明构造函数时,派生类构造函数可以不向基类构造函数传递参数。 2 当基类没有默认构造函数时,派生类应声明带形参的构造函数,派生类的构造函数需要给基类的构造函数传递参数 由于基类的构造函数和析构函数不能被继承,在派生类中,如果对派生类新增的成员进行了初始化,派生类的构造函数只负责对新增的成员进行初始化,对所有从基类继承下来的成员,其初始化工作还是由基类的构造函数来完成。 3派生类的构造函数的语法形式: ?派生类名(基类所需的形参,本类成员所需的形参):基类名(参数表) ?{ ? 派生类新增成员的初始化赋值语句; ?}; 4 当有内嵌对象的时: 派生类名(参数总表):基类名1(参数), 基类名2(参数), ...基类名n(参数),对象数据成员的初始化 { 派生类新增成员的初始化赋值语句; }; //程序举例: #include iostream.h #include string.h class People { private: char m_name[20]; protected: char m_address[40]; public: void SetPeopleData(char name[20],char address[40]); char * GetName(); char *GetAddress(); void ShowInfo(); People(char name[20]=Noname ,char address[40]=Noaddress); }; People::People(char name[20],char address[40]) { SetPeopleData(name,address); } void People::SetPeopleData(char name[20],char address[40]) { strcpy(m_name,name); strcpy(m_address ,address); } char * People::GetName() { return m_name;} char * People::GetAddress() { return m_address;} void People::ShowInfo() { cout 姓名:m_name endl; cout 家庭地址:m_address endl; } class Student:public People { private: int m_ID; public: void SetStudentData(char name[20],char address[40],int ID); int GetID(); void ShowInfo(); Student(char name[20],char address[40],int ID); }; /*Student::Student(char name[20],char address[40],int ID) 在派生类的构造函数中,隐式调用基类的构造函数 { SetPeopleData(name,address); m_ID = ID; } *///上面的构造函数是当基类有默认构造函数时 /*Student::Student(char name[20],char address[40],int ID) :People(name,address) //采用初始化列表的方式显式调用基类的构造函数 { m_ID = ID; }//上面的构造函数是当基类没有默认构造函数时 void Student::SetStudentData(char name[20],char address[40],int ID) { SetPeopleData(name,address); m_ID = ID; } int Student::GetID() { return m_ID;} void Student::ShowInfo() { People::ShowInfo(); cout

文档评论(0)

1亿VIP精品文档

相关文档