第2讲类与对象(1) 2 C++ 案例背景介绍从本章开始,我们将按照面向对象的程序设计思想实现一个简化的“大学人员信息管理系统”。所谓面向对象的程序设计,程序的核心是数据。“人员信息管理”的核心数据是“人员信息”,因此需要将不同的人员抽象出来,对其属性数据和行为进行封装。在大学里,主要有两大类人员: 学生和教职员工。其中学生又可分为本科生和研究生等。而教职员工又可分为教师和职员等。我们对不同类的人员所具有的属性和行为进行描述,称为数据抽象,形成了“类”的概念。一个类的实例称为类的“对象”,对应着问题域中的实体。例如:学校里的学生很多,他们都具有同样的属性和行为, 抽象成为“学生类”—— CStudent ;学生李明对应到程序中就是 CStudent 类对象 liming 。 3本讲主要内容类与对象的基本概念构造函数与析构函数对象数组和对象指针常成员函数与常对象 4类与对象的基本概念 5 【分析】在案例程序的背景下,分析“学生”具有的属性和行为主要有: 姓名学号性别出生日期专业所属院系所属班级各科成绩身高体重爱好……睡觉吃饭上课考试上自习背单词社团活动打球选课查询成绩做作业……【例2-1 】学习面向对象程序设计中类的概念,描述案例程序中“学生”的属性和行为。建立学生类的对象,并利用 C++ 的输入输出方式实现学生信息的输入和输出。根据程序的功能进行取舍和细化,将与程序无关的属性数据和行为去除, 谓之“数据抽象”。 6 1. C++ 类的构成与定义抽象出一个基本的类—— CStudent 类。该类包含两部分信息: 属性数据以不同类型的数据表现操作(行为) 以函数形式表现 7 CStudent 类的属性数据 char m_strName[20]; //姓名 char m_strID[12]; //编号 char m_cSex ; //性别: 0代表男 1代表女 char m_strMajor[20]; //专业 8 CStudent 类的行为(部分) void SetName(char * strName ); //设置学生姓名 void GetName(char * strName ); //获取学生姓名 void SetID(char * strID ); // 设置学生 ID void GetID(char * strID); //获取学生 ID ……对于每一个属性数据,通常需要为之设计两个基本操作——设置( Set )该属性数据的值,获取( Get ) 该属性数据的值。 9 #include < iostream > using namespace std; class CStudent { private: char m_strName[20]; //姓名 char m_strID[12]; //编号 char m_cSex ; //性别: '0': 男'1': 女 char m_strMajor[20]; //专业 public: void SetName(char * strName ) { strcpy(m_strName , strName ); } 数据成员成员函数关键字 class 用以声明一个类 class 后面的 CStudent 是用户自定义类名 CStudent 是一个新的类型公有成员在关键字 public 后面声明,它们是类与外部的接口,任何外部函数都可以访问公有类型数据和函数。私有成员在关键字 private 后面声明,该域放在前面时, private 可以省略。只允许本类中的函数访问,而类外部的任何函数都不能访问。 10 void GetName(char * strName ) { strcpy(strName , m_strName ); } void SetID(char * strID ){ strcpy(m_strID, strID); } void GetID(char * strID) { strcpy(strID, m_strID); } void SetSex(char cSex) { m_cSex = cSex; } void GetSex(char * cpSex) {* cpSex = m_cSex; } void SetMajor(char * strMajor) { strcpy(m_strMajor, strMajor); } void GetMajor(char * strMajor) { strcpy(strMajor, m_strMajor); } };不要忘了类的结束符;
二级C++课件 来自淘豆网m.daumloan.com转载请标明出处.