继承和派生
来源:互联网 发布:瓷砖平面设计软件 编辑:程序博客网 时间:2024/06/10 07:29
1.继承和派生的概念
继承:定义新的类B时,如果B与已有类A相似(B有A全部特点),那么可以把A作为基类,B作为基类的派生类(子类);派生类可以对基类进行修改或扩充,派生类中,可扩充新的成员变量和成员函数;派生类定义后,可以独立使用,不依赖于基类。
注意:派生类拥有基类全部的成员函数和成员变量,包括private、protected、public; 在派生类的各个成员函数中,不能访问基类中private成员
2.派生类格式
class 派生类名: public 基类名
{
……
};
3.派生类对象的内存空间
派生类对象包含着基类对象,而且基类对象的存储位置位于派生类对象新增的成员变量之前
4.实例程序:学籍管理
#include <iostream>#include <string>using namespace std;class CStudent {private:string name;string id;//学号char gender;//'F'代表女,'M'代表男int age;public:void PrintInfo();//打出信息void SetInfo(const string &name_, const string &id_, int age_, char gender_);//设置信息string GetName() {return name;}};void CStudent::PrintInfo(){cout << "name:" << name << endl;cout << "id:" << id << endl;cout << "age:" << age<< endl;cout << "gender:" << gender << endl;}void CStudent::SetInfo(const string &name_, const string &id_, int age_, char gender_)//设置信息{name = name_;id = id_;age = age_;gender = gender_;}class CUndergraduateStudent :public CStudent//本科生类继承了CStudent类{private:string department;//学生所在系public:void QualifiedForBaoyan() {cout << "Qualified For Baoyan" << endl;}void PrintInfo()//在基类基础扩充{CStudent::PrintInfo();//调用了基类成员函数cout << "Department:" << department << endl;}void SetInfo(const string &name_, const string &id_, int age_, char gender_, const string &department_){CStudent::SetInfo(name_, id_, age_, gender_);department = department_;}};int main(){CUndergraduateStudent s2;s2.SetInfo("Frank","1131205",24,'M',"Computer Science");cout << s2.GetName() <<" ";s2.QualifiedForBaoyan();s2.PrintInfo();return 0;}输出:
Frank Qualified For Baoyanname:Frank;id:1131205age:24gender:MDepartment:Computer Science
阅读全文
0 0
- 派生和继承
- 继承和派生类
- 派生和继承
- 继承和派生
- 派生和继承
- 继承和派生
- 继承和派生
- 继承和派生
- Android_继承和派生
- VC_继承和派生
- C++ 继承和派生
- 继承和派生
- C++继承和派生
- 继承和派生
- 继承和派生
- 继承和派生
- 继承和派生
- 继承和派生1
- JavaScript高级程序设计(引用类型)
- Myeclipse-2016-windows破解以及汉化教程
- PropertyUtils.isReadable()使用出现的bug
- Hdu 6166 Senior Pan【思维+随机化+最短路】好题~
- ANDROID 安装失败 INSTALL_FAILED_UPDATE_INCOMPATIBLE解决
- 继承和派生
- 树的遍历问题
- ModelAttribute注解的源代码分析流程
- python数据结构-双端队列
- 万万没想到我四级过了
- 3D slicer的教程网站
- Caused by: android.content.res.Resources$NotFoundException: File res/drawable/***
- 129. NSObject的load和initialize方法比较
- 《java 多线程编程核心技术》读书笔记五