{ x=r; y=i; }
double Location::getx() {return x; } double Location::gety() {return y; } double Location::distance(Location &t) { double dx=x-t.x; double dy=y-t.y;
return sqrt(dx*dx+dy*dy); }
double distance(Location &a , Location &b) { double dx=a.x-b.x; double dy=a.y-b.y;
return (sqrt(dx*dx+dy*dy)); } int main() {
Location A(-1,-1); Location B(-2,2);
cout<<\l;
double d=A.distance(B); cout<<\return 0; }
共29 页,第 21页
实验三 派生类与继承
一、实验目的
1、学习类的继承,能够定义和使用类的继承关系。 2、学习派生类的声明与定义方法。 3、掌握类的定义和对象的声明。 4、熟悉公有派生和私有派生的访问特性。 5、掌握派生类构造函数和析构函数的执行顺序。
6、掌握利用访问声明调整基类成员在派生类中的访问属性。 二、试验内容
1、已有类Time和Date,要求设计一个派生类Birthtime,它继承类Time和Date,并且增加一个数据成员Childname用于表示小孩的名字,同事设计主程序显示一个小孩的出生时间和名字。 #include
public:
Time(int h,int m, int s) {
hours=h;
共29 页,第 22页
minutes=m; seconds=s; }
void display() {
cout<<\出生时间:\时\分\秒\}
protected:
int hours,minutes,seconds; };
class Date {
public:
Date(int m,int d,int y) {
month=m; day=d; year=y; }
void display() {
cout<<\出生年月:\年\月\日\}
protected:
int month,day,year; };
class Birthtime:public Date,public Time {
public:
Birthtime(string cn,int yy,int mm,int dd,int hh,int mint,int ss):Date(yy,mm,dd),Time(hh,mint,ss) {
//strcpy(childname,cn); childname=cn; }
void display() {
cout<<\姓名:\Date::display(); Time::display(); }
private:
string childname; };
共29 页,第 23页
int main() {
Birthtime ys(\张健\ys.display(); return 0; }
2、编写一个学生和教师的数据输入和显示程序。学生数据有编号、姓名、性别、年龄、系别和成绩,教师数据有编号、姓名、性别、年龄、职称和部门。要求将编号、姓名、性别、年龄的输入和显示设计成一个类Person,并作为学生类Student和教师类Teacher的基类。
#include
private: int no;
string name; public:
void input() {
cout<<“请输入编号和姓名:”;cin>>no>>name;} void display()
{cout<<“编号: ”< 共29 页,第 24页 cout<<“姓名: ”< class student: public person {private: int bh,score; public: void get() {input(); cout<< “请输入班号和成绩:”; cin>>bh>>score; } void show() {display(); cout<<“班号: ”< class teacher: public person { private: string zc,bm; public: void get() { input(); cout<< “请输入职称和部门:”; cin>>zc>>bm; } void show( ) { display(); cout<<“职称: ”< int main( ) { student s; teacher t; s.get( ); s.show( ); t.get( ); t.show( ); return 0; } 共29 页,第 25页