当前位置:文档之家› 实验5类和对象、继承和派生

实验5类和对象、继承和派生

CTeacher(char*name,char*id,bool isman=1,int years=10);
~CTeacher(){}
void Print();
private:
int nTeachYears;
};
(3)单击标准工具栏的“Save”按钮,弹出“保存为”文件对话框。将文件夹定位到“,文件名为Ex_Class.h。
(2)私有继承
私有继承的特点是基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类所访问。私有继承的派生类对象不能访问基类的所有成员,但在派生类中是可以访问的。
(3)保护继承
保护成员的特点是基类的所有公有成员和保护成员都作为派生类的保护成员,并且只能被它的派生类成员函数和友元访问,积累的私有成员仍然是私有的。
stu.student.setSex(0);
stu.InputScore(80,90,85);
stu.Print();
CTeacher tea(" Ding","911085");
tea.Print();
tea.setID("9110234");
tea.Print();
}
(2)单击标准工具栏的“Save”按钮,弹出“保存为”文件对话框。将文件保存为Ex_Class.cpp。
3.掌握定义构造函数和析构函数、重载构造函数的方法。
4.掌握静态成员和常类型的用法。
5.掌握多重继承和派生类的方法。
6.能正确理解public,private和proteced 3种访问权限及继承方式的区别。
7.掌握在派生类中初始化基类成员的方法。
8.掌握程序多文件的组织方法等
二、实验仪器或设备
(1)环境语言:标准配置计算机windows系统语言
(3)编译运行。
(4)选择“工程”—“添加工程”—“文件”菜单命令,在弹出的“插入文件到工程”对话框中,选定前面的文件Ex_Class.h,单击“确定”按钮,此时的开发环境如图所示。
4.退出Visual C++6.0
5.实验总结:
(1)类的定义一般包括声明部分和实现部分。声明部分是用于声明该类中的成员,包括数据成员的声明和成员函数的声明。C++定义类的一般格式为:
cout<<"性别:"<<str<<endl;
}
public:
char*getName()const
{ return(char*)pName;}
void setName(char*name)
{
int n=strlen(name);
strncpy(pName,name,n);
pName[n]='\0';
dbScore[1]=score2;
dbScore[2]=score3;
}
void CStudent::Print()
{
student.Output();
for(int i=0;i<3;i++)
cout<<"成绩"<<i+1<<":"<<dbScore[i]<<endl;
}
//类CTeacher实现代码
3输入程序Ex_Class.cpp
(1)单击标准工具栏上的“New Text File”按钮,在新打开的文档窗口中输入下列程序代码:
#include<iostream.h>
#include"Ex_Class.h"
//类CStudent实现代码
CStudent::CStudent(char*name,char*id,bool isman)
2、设计方案
程序Ex_Class:定义一个人员类CPerson,包括数据成员:姓名、编号、性别、和用于输入、输出的成员函数。在此基础上派生出学生类CStudent(增加成绩)和教师类CTeacher(增加教龄),并实现对学生和教师信息的输入、输出。编写一个完整的测试程序,并将Ex_Class所有的类定义保存在Ex_Class.h,将类的成员函数实现代码保存在Ex_Class.cpp中。
四、实验步骤(包括主要步骤、代码分析等)
1创建工作文件夹
打开计算机,在“F:\1208114124王耀东”文件夹中创建一个新的子文件夹”实验5”。
2输入程序Ex_Class.h
(1)启动Visual C++ 6.0。
(2)单击标准工具栏上的“New Text File”按钮 ,在新打开的文档窗口中输入下列程序代码:
(2)工具:Microsoft Visual C++6.0
三、总体设计(设计原理、设计方案及流程等)
1、设计原理
将数据及处理数据的相应函数“封装”到一个“类”中,类的实例成为“对象”。类是通过抽象数据类型的方法来实现的一种数据类型。类是对某一类对象的抽象;而对象是某一种类的实例。
继承是面向对象语言的一个重要机制,通过继承可以在一个一般类的基础上建立一个新类。被继承的类称为“基类(base class)”,在基类的基础上建立的新类型称为“派生类(derived class)”。












告0
学号
姓名
日期
专业
班级
实验项目:类和对象、继承和派生。
一、实验目的
1.定义人员类,包括数据成员:姓名、编号、性别和用于输入、输出的成员函数。在此基础上派生出学生类和教师类,并实现对学生和教师信息的输入、输出。
2.掌握类和对象的定义和使用方法。
从一个基类定义一个派生类可按下列格式:
class<派生类名>:[<继承方式>]<基类名>
{
<派生类的成员>
};
继承有三种方式(若继承方式没有指定,则被指定为默认的public方式):
(1)公有继承
公有继承的特点是基类的公有成员和到户成员作为派生类时,它们都保持原有的状态,而基类的私有成员还是私有的。需要注意,派生类中或派生类的对象可以使用基类的公有成员(包括保护成员),但基类或基类的对象却不可以使用派生类的成员。
CTeacher::CTeacher(char*name,char*id,bool isman,int years)
{
nTeachYears=years;
Input(name,id,isman);
}
void CTeacher::Print()
{
Output();
cout<<"教龄:"<<nTeachYears<<endl;
:student(name,id,isman)
{
dbScore[0]=0;
dbScore[1]=0;
dbScore[2]=0;
}
void CStudent::InputScore(double score1,double score2,double score3)
{
dbScore[0]=score1;
}
//主函数
void main()
{ CStudent stu(" LiMing"," 21010211" );
cout<<stu.getName()<<endl;
cout<<stu.student.getName()<<endl;
stu.Print();
stu.student.setName(" LingLing");
(3)继承是面向对象的一个重要机制通过继承可以在一个一般类的基础上建立新类。
(4)派生类中或派生类的对象可以使用基类的公有成员比如Cperson的成员函数Cstudent和Ctercher函数但基类的对象却不可以使用派生类的成员。
(5)另外本实验代码较多很容易出错,注意字母的大小写,注意标点要在英文字体下进行,经常总结自己在输入程序时出现的错误,等到再输入程序时注意自己曾经犯下的错误。
void InputScore(double scorwe1,double score2,double score3);
void Print();
CPerson student;
private:
double dbScore[3];
};
class CTeacher:public CPerson
{
public:
Class<类名〉
{
Private:
[<私有数据和函数>]
Public:
[<公有数据和函数>]
};
(2)在调试过程中,我理解了public类的成员、private类的成员的特性。对于public类的成员来说,它们能被外面的程序访问;而对于private类的成员来说,它们只能有类中的函数所使用,不能被外面的程序所访问。
指导老师(签字):
实验成绩:
}
char*getID()const
{ return(char*)pID; }
void setID(char*id)
{
int n=strlen(id);
strncpy(pID,id,n);
pID[n]='\0';
}
bool getSex(){ return bMan; }
void setSex(bool isman)
}
void Input(char*name,char*id,bool isman)
相关主题