实验报告二

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

入实参,通过对象访问类输出结果。

1.








1
2.

1.深入了解了继承的含义,掌握了保护成员在继承中的应用。
2.熟悉继承的规则:

(1).若 public 继承,在基类中 public、protected 在派生类中仍为 public、protected,
可以直接在派生来中直接访问;
(2) 若 protected 继承,基类中的 public 在派生类中为 public,基类中 protected 为 private,在派生类中只能直接访问 public 形式,不可直接访问 protected 形式;

2.定义 circle 类,添加 radius(半径)、get_r()//获得半径、get_area()计算面积成

员。定义 table 类,添加 height(高度)、get_high()获得高度.这两个类派生

roundtable,另加入 color(颜色)、get_color()获得颜色成员,最后在主函数中输

派生类成员可以访问基类的部分非公开的成员。



学校机房

计算机

Visual C++ 6.0


1. 编写一个学生和教师数据的输入和显示程序,学生数据有编号、姓名、班级

和成绩,教师数据有编号、姓名、职称和部门。

2. 设计一个圆类 circle 和一个桌子类 table,另设计一个圆桌类 roundtable,它

是从前两个类派生的,要求输入一个圆桌的高度、面积和颜色等数据。

1.设计一个 person 类,类中包含 number(编号)、name(姓名),void showp()//

基类显示函数,同时作为学生类 student 和教师类 teacher 的基类。student 类中

添加 banj(i 班级)和 chengj(i 成绩)成员,show()显示函数,Student(int num,string
cout<<" 教 师 信 息 :"<<"\n"<<" 编 号 :"<<getnumber()<<"\t"<<" 姓
名:"<<getname()<<"职称:"<<zhicheng<<"\t"<<"部门:"<<bumen<<endl;
}
};
class Student:public person
{
public:
类公有函数 Showp()
t.Show ();
//类 teacher 的对象调用公有
函数 Show()
cout<<" 教 师 信 息 :"<<"\n"<<" 编 号 :"<<t.getnumber()<<"\t"<<" 姓
名:"<<t.getname()<<"\t"<<"职称:"<<t.zhicheng<<"\t"<<"部门:"<<t.bumen<<endl;
1.

#include<iostream>

#include<string>
using namespace std;
class person
{
public: string name;//定义 name 为私有成员
int number;//定义 number 为保护的数据成员 person(int num,string n)//定义类 person 的构造函数
{
number=num;
name=n;
}
int getnumber(){return number;}
string getname(){return name;}
void Showp()
{ cout<<"编号:"<<number<<"\t"<<"姓名:"<<name<<endl; }
};
class Teacher:public person
color=new char[strlen(c)+1]; strcpy(color,c); } char*get_color(){return color;} private: char*color; }; void roundtable:: disp() { cout<<"圆桌相关数据如下:"<<endl; cout<<"半径为:"<<get_r()<<"\t"<<"米"<<endl; cout<<"高度为:"<<get_high()<<"\t"<<"米"<<endl; cout<<"面积为:"<<get_area()<<"\t"<<"平方米"<<endl; cout<<"颜色为:"<<get_color()<<endl; } int main() { roundtable rd(0.6,1.2,"米白色"); rd.disp(); return 0; }
{
public:
string zhicheng;
string bumen;
Teacher(int num,string n,string z,string b):person(num,n)//类 teacher 的构造函数
{
2
zhicheng=z;
bumen=b;
}
void Show(void)
{
名:"<<getname()<<"班级:"<<banji<<"\t"<<"成绩:"<<chengji<<endl;
}
};
void main(void)
{
Teacher t(002,"李明","教授","软件");//用类 teacher 定义一个对象 t
t.Showp();
//类 teacher 的对象 t 调用基
string banji;
int chengji;
Student(int num,string n,string bj,int c):person(num,n)//类 student 的构造函数
{
banji=bj;
chengji=c;
}
void Show(void)
{
cout<<" 学 生 信 息 :"<<"\n"<<" 编 号 :"<<getnumber()<<"\t"<<" 姓

n,string bj,int c):person(num,n)//类 student 的构造函数 teacher 类中添加 zhicheng

(职位)和 bumen(部门)成员,show()显示函数和 Teacher(int num,string n,string

z,string b):person(num,n)//类 teacher 的构造函数。
table(double h){high=h;} double get_high(){return high;} private: double high; }; class roundtable:public circle,public table { public: void disp(); roundtable(double h,double r,char c[]):circle(r),table(h) {
Student s(111,"张磊","软件",90);
s.Showp ();
s.Show ();
cout<<" 学 生 信 息 :"<<"\n"<<" 编 号 :"<<s.getnumber()<<"\t"<<" 姓
名:"<<s.getname()<<"\t"<<"班级:"<<s.banji<<"\t"<<"成绩:"<<s.chengji<<end;}
2.#include<iostream>
#include<string.h>
using namespace std;
ຫໍສະໝຸດ Baidu
#define pi 3.14
class circle
3
{ public:
circle(double r){radius=r;} double get_r(){return radius;} double get_area(){return pi*radius*radius;} private: double radius; }; class table { public :
(3) 若 private 继承,基类中 public 在派生类中为 protected,基类中 protected 在派生类中为 private,在派生类中可直接访问基类中的 public,不可直接访问
private (4)基类中 private 不管以哪种方式被继承,在派生类中都不可直接被访问。 (5)因此,在基类中的私有成员一半定义为 protected,方便在派生类中访问
4
青岛理工大学
课程实验报告
课程名称 姓名
C++面向对象程序设计
班级 学号
实验日期 实验成绩
实验名称
实验二 继承与派生

1. 理解继承的含义,掌握派生类的定义方法和实现。

2. 理解公有继承下基类成员对派生类成员和派生类对象的可见性,能正确的访

问继承层次中的各种类成员。

3. 理解保护成员在继承中的应用,能够在适当的时候选择使用保护成员,以使
相关文档
最新文档