c++实验继承与派生上机练习题

合集下载

国家二级C++机试(继承和派生)模拟试卷8(题后含答案及解析)

国家二级C++机试(继承和派生)模拟试卷8(题后含答案及解析)

国家二级C++机试(继承和派生)模拟试卷8(题后含答案及解析) 题型有:1. 选择题

选择题

1.有如下类定义:class AA{ int a:public:AA(intn=0):a(n){} };class BB:public AA{ public:BB(int n)____ };其中横线处缺失部分是( )。

A.:a(n){}

B.:AA(n){}

C.{a(n);}

D.{a=n;}

正确答案:B

解析:根据派生类构造函数的一般格式:<派生类名>(<总参数表>):<基类名1>(<参数表1>),…<基类名n><参数表n>),<成员对象名1>(<参数表n+1>),<成员对象名m>(<参数表n+m>)<派生类构造函数体>。在派生类BB的构造函数总参数表后面应该接上基类名AA和其参数。知识模块:继承和派生

2.有如下程序:#inc1ude <iostream>using namespace std;class Basel{ public:Basel(int d) {cout<<d;} ~Basel( ){} };class Base2{ public:Base2(int d) {cout<<d;} ~Base2( ){} };class Derived:public Basel,Base2{ public:Derived (int a,int b,int c,int d);Basel(b),Base2(a),bl(d),b2(c) {} Private:int b1;int b2;};int main( ){ Derived d(1,2,3,4);retum 0;} 运行时的输出结果是( )。

c继承与派生习题答案

c继承与派生习题答案
(C)。
A.派生类的对象可以赋给基类的对象
B.派生类的对象可以初始化基类的引用
C.派生类的对象可以直接访问基类中的成员
D.派生类的对象的地址可以赋给指向基类的指针
3.6有如下类定义:
class MyBASE{
int k;
public:
void set(i nt n) {k=n;}
int get( ) const {retur n k;}
1.3派生类的构造函数一般殳有3项工作要完成:首先_基类初始化一,其次—成员 对象初始化,最后_执行派生类构造函数体_。
1.4多继承时,多个基类中的同名的成员在派生类中由于标识符不唯一而出现—二
义性一。在派生类中采用_虚基类_或_作用域分辨符一来消除该问题。
3.选择题
3.1下面对派生类的描述中,错误的是(D)。
A.—个派生类可以作为另外一个派生类的基类
B.派生类至少有一个基类
C.派生类的成员除了它自己的成员外,还包含了它的基类的成员
D.派生类中继承的基类成员的访问权限到派生类中保持不变
3.2下列对友元关系叙述正确的是(A)。
A.不能继承
B.是类与类的关系
C.是一个类的成员函数与另一个类的关系
D.提高程序的运行效率
B.XB::XB(int a,int b):XA(a),y(b){ }
C.XB::XB(int a,int b):x(a),XB(b){}

C语言程序设计实验答案继承与派生

C语言程序设计实验答案继承与派生

C语⾔程序设计实验答案继承与派⽣

实验07 继承与派⽣(4学时)

(第7章继承与派⽣)

⼀、实验⽬的

⼆、实验任务

7_1 声明⼀个基类Animal。

有私有整型成员变量age,构造其派⽣类dog,在其成员函数SetAge(int n)中直接给age 赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?编程试试看。

7_2 声明⼀个基类BaseClass。

有整型成员变量Number,构造其派⽣类DerivedClass,观察构造函数和析构函数的执⾏情况。

7_3 声明⼀个车(vehicle)基类。

具有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,由此派⽣出⾃⾏车(bicycle)类、汽车(motorcar)类。⾃⾏车(bicycle)类有⾼度(Height)等属性,汽车(motorcar)类有座位数(SeatNum)等属性。从bicycle和motorcar派⽣出摩托车(motorcycle)类,在继承过程中,注意把vehicle设置为虚基类。如果不把vehicle设置为虚基类,会有什么问题?编程试试看。7_4 以实验6中的People(⼈员)类为基类。

派⽣出student(学⽣)类,添加属性:班号char classNo[7];

派⽣出teacher(教师)类,添加属性:职务char principalship[11]、部门char department[21]。

从student类中派⽣出graduate(研究⽣)类,添加属性:专业char subject[21]、导师teacher adviser;

C++类的继承与派生练习题

C++类的继承与派生练习题

请用C++继承和派生的相关知识来实现上面的类库示意图。 每个类旁边的旁注表示该类有的基本成员(或称之为属性)。 最后达到的效果是: 实例化一个XML多媒体文件后,能够读出所有其继承的类的属性(当然包括 它自身的)。
ຫໍສະໝຸດ Baidu
C++类的继承与派生
文件
大小、修改时间等
编码方式: ASCII还是 Unicode
文本文件
二进制文 件 多媒体文 件
何种操作系 统平台? (枚举或字 符串实现)
INI文件
哪个程序的 配置文件
XML文件
可执行文 件
权限(用枚 举表示)
哪个版本的 XML
XML多媒 体文件
用于何种便 携式设备?
质量高低 (用枚举来 表示)

c++实验8 继承与派生上机练习题

c++实验8 继承与派生上机练习题

1.定义一个哺乳动物类Mammal,并从中派生出一个狗类Dog,下面给出Mammal类的定义,要求:

(1)添加Dog类的颜色数据成员,访问属性为私有,通过SetColor和GetColor成员函数来对颜色进行设置和获取。

(2)分别为基类和派生类添加相应的构造函数(有参、无参)和析构函数,并进行测试.

class Mammal

protected:

int itsAge;

int itsWeight;

public:

int GetAge(){return itsAge;}

void SetAge(int age) {itsAge=age;}

int GetWeight() { return itsWeight;}

void SetWeight(int weight) {itsWeight= weight;}

};

class Dog : public Mammal

{

//定义Dog类的数据成员和成员函数

};

改:

#include 〈iostream。h〉

#include 〈string〉

using namespace std;

class Mammal

{

protected:

int itsAge;

int itsWeight;

public:

Mammal();

~Mammal();

int GetAge(){return itsAge;}

void SetAge(int age) {itsAge=age;}

int GetWeight() { return itsWeight;}

void SetWeight(int weight) {itsWeight= weight;}

C++实验七继承和派生

C++实验七继承和派生

实验七继承和派生

实验目的

∙学习声明和使用类的继承关系,声明派生类。

∙熟悉不同继承方式下对基类成员的访问控制。

∙学习利用虚基类解决二义性问题。

∙理解继承中构造函数和析构函数的调用规则。

实验内容:

一、程序分析题

1阅读下面的程序,写出运行结果。

#include<iostream>

using namespace std;

class A

{

public:

A(){a=0;cout<<"调用A的默认构造函数!\n";}

A(int i){a=i;cout<<"调用A的带参数构造函数!\n";}

~A(){cout<<"调用A的默认析构函数!\n";}

void Print() const{cout<<a<<",";}

int Geta(){return a;}

private:

int a;

};

class B:public A

{

public:

B(){b=0;cout<<"调用B的默认构造函数!\n";}

B(int i,int j,int k);

~B(){cout<<"调用B的默认析构函数!\n";}

void Print();

private:

int b;

A aa;

};

B::B(int i,int j,int k):A(i),aa(j)

{b=k;

cout<<"调用B的构造函数!\n";

};

void B::Print()

{A::Print();

cout<<b<<","<<aa.Geta()<<endl;

c++继承与派生练习

c++继承与派生练习

一.填空题

1.类有2种用法:一是类的实例化,即生成类的对象;另一种是通过继承,派生出新类。

2.类A继承了类B,则类A称为子类,类B称为父类。

3.C++语言提供的多继承机制允许一个派生类继承多个基类,即使这些类相互无关。二.判断

1.在派生类的构造函数的初始化表中不能对包含基类的子对象初始化。N

2.一个派生类可以作为另一个类的派生类。Y

3.派生类至少一个基类。Y

4.派生类中继承的基类成员的访问权限到派生类保持不变。N

5.派生类的对象可以对它的基类成员中公有继承的保护成员进行访问。N

6.设置虚基类的目的是为了减少程序中的代码。N

7.派生类的构造函数执行顺序是:对象成员的构造函数,基类的构造函数,派生类本身的构造函数。N

8.基类的私有成员不能为派生类的成员所访问。Y

9.基类的公有成员在私有继承时成为派生类的私有成员,而在保护继承是则成为派生类的保护成员。Y

10.在公有和保护继承方式下,派生类的成员可以对基类的保护成员进行访问。Y

11.在公有和保护继承方式下,派生类的对象可以对基类的保护成员进行访问。N

三.程序分析

1. #include<iostream.h>

class Base{

public:Base( ){cout<<"基类构造函数"<<endl;}

~Base( ){cout<<"基类析构函数"<<endl;}

};

class Derive:public Base

{

public:Derive( ){cout<<"派生类构造函数"<<endl;}

c 继承与派生习题答案

c  继承与派生习题答案

继承与派生

概念填空题

1.1在C++中,三种派生方式的说明符号为public、private、protected不加说明,则默认的派生方式为private。

1.2当公有派生时,基类的公有成员成为派生类的公有成员;保护成员成为派生类的保护成员;私有成员成为派生类的不能直接访问成员。当保护派生时,基类的公有成员成为派生类的保护成员;保护成员成为派生类的保护成员;私有成员成为派生类的不能直接访问成员。

1.3 派生类的构造函数一般有3项工作要完成:首先基类初始化,其次成员对象初始化,最后执行派生类构造函数体。

1.4多继承时,多个基类中的同名的成员在派生类中由于标识符不唯一而出现二义性。在派生类中采用虚基类或作用域分辨符来消除该问题。

3.选择题

3.1下面对派生类的描述中,错误的是(D )。

A.一个派生类可以作为另外一个派生类的基类

B.派生类至少有一个基类

C.派生类的成员除了它自己的成员外,还包含了它的基类的成员

D.派生类中继承的基类成员的访问权限到派生类中保持不变

3.2下列对友元关系叙述正确的是(A)。

A.不能继承

B.是类与类的关系

C.是一个类的成员函数与另一个类的关系

D.提高程序的运行效率

3.3当保护继承时,基类的(B)在派生类中成为保护成员,不能通过派生类的对象来直接访问。

A.任何成员B.公有成员和保护成员

C.公有成员和私有成员D.私有成员

3.4设置虚基类的目的是(B)。

A.简化程序B.消除二义性

C.提高运行效率D.减少目标代码

3.5在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是(C )。

C++实验三继承和派生类(附答案)

C++实验三继承和派生类(附答案)

实验三继承和派生类

实验目的和要求

1.理解类的继承的概念,能够定义和使用类的继承关系。

2.掌握派生类的声明与定义方法。

3.熟悉公有派生和私有派生的访问特性。

4.学习虚基类在解决二义性问题中的作用。

实验内容

1.先阅读下面的程序,分析程序运行的结果,然后再上机运行程序,验证自己分析的结果是否正确。

(1)

#include<iostream.h>

class A

{

public:

A()

{

cout<<"A::A() called.\n";

}

~A()

{

cout<<"A::~A() called.\n";

}

};

class B:public A

{

public:

B(int i)

{

cout<<"B::B() called.\n";

buf=new char[i];

}

~B()

{

delete []buf;

cout<<"B:~B() called.\n";

}

private:

char *buf;

};

void main()

{

B b(10);

}

(2)

#include<iostream.h>

class A

{

public:

A(int a,int b):x(a),y(b)

{

cout<<"A constructor..."<<endl;

}

void Add(int a,int b)

{

x+=a;

y+=b;

}

void display()

{

cout<<"("<<x<<","<<y<<")"<<endl;

国家二级C++机试(继承和派生)模拟试卷7(题后含答案及解析)

国家二级C++机试(继承和派生)模拟试卷7(题后含答案及解析)

国家二级C++机试(继承和派生)模拟试卷7(题后含答案及解析) 题型有:1. 选择题

选择题

1.对于通过公有继承定义的派生类,若其成员函数可以直接访问基类的某个成员,说明该基类成员的访问权限是( )。

A.公有或私有

B.私有

C.保护或私有

D.公有或保护

正确答案:D

解析:通过公有继承定义的派生类,其成员函数可以访问基类的公有成员和保护成员,但不能访问基类的私有成员。知识模块:继承和派生

2.建立一个有成员对象的派生类对象时,各构造函数体的执行次序为( )。

A.派生类、成员对象类、基类

B.成员对象类、基类、派生类

C.基类、成员对象类、派生类

D.基类、派生类、成员对象类

正确答案:C

解析:建立派生类对象的时候,构造函数的执行顺序如下:执行基类的构造函数,调用的顺序按照基类被继承时候的顺序(自左向右)。然后是执行成员对象的构造函数,调用顺序按照各个成员对象在类中的声明顺序(自上而下),最后是执行派生类的构造函数。知识模块:继承和派生

3.有如下类定义和变量定义:class Parents{ public:int publicData;prlVate:mt privateData;};class ChildA:public Parents{/*类体略*/};class ChildB:private Parents{/*类体略*/);ChildA a:ChildB b:下列语句中正确的是( )。

A.cout<<a.publicData<<endl;

B.cout<<a.priVateData<<endl;

C继承与派生类习题

C继承与派生类习题

第九章继承与派生类

9.2 典型例题解析与解答

例题 1:以下对派生类的描述中,()是错误的。

A.一个派生类可以作为另一个派生类的基类

B.派生类最少有一个基类

C.派生类的成员除了它自己的成员外,还包括了它的基类成员

D.派生类中继承的基类成员的接见权限到派生类保持不变

答案: D

解析:一个派生类可以作为另一个派生类的基类。无论是单继承还是多继承,派生

类最少有一个基类。派生类的成员除了它自己的成员外,还包括了它的基类成员。

派生类中继承的基类成员的接见权限到派生类受继承方式影响的,关于私有继承,

基类的 public , protected 成员在派生类中作为 private 成员;关于公有继承,基类的public , protected 成员在派生类中接见属性不变;关于保护继承,基类的

public 、 protected成员在派生类中作为protected成员。

例题 2:派生类的对象对它的哪一类基类成员是可以接见的?()

A.公有继承的基类的公有成员 B. 公有继承的基类的保护成员

C. 公有继承的基类的私有成员

D. 保护继承的基类的公有成员

答案: A

解析:公有继承的基类的公有成员在派生类中保持公有接见权限,因此派生类对象

可以接见它;公有继承的基类的保护成员在派生类中保持保护接见权限,因此派生

类对象不行以接见它;基类的私有成员不可以被派生到派生类中,因此派生类对象不

可以接见它;保护继承的基类的公有成员在派生类中变为保护的接见权限,因此派生类对象不行以接见它。

例题 3:关于多继承二义性的描述,()是错误的。

C++继承和派生编程参考答案

C++继承和派生编程参考答案

继承和派生练习一

1.以日期类cDate(有数据成员年月日)为基类派生日期时间类cTime,新增数据成员时分秒,要求有构造函数、输出所有成员的函数,测试程序正确性。

#include<iostream.h>

class cDay{

int ye,mo,da;

public:

cDay(int a=2000,int b=1,int c=1){ye=a,mo=b,da=c;}

void Dout(void){cout<<ye<<' '<<mo<<' '<<da<<endl;}

};

class cTime:public cDay{

int ho,mi,se;

public:

cTime(int a=2000,int b=1,int c=1,int d=12,int e=12,int f=12):cDay(a,b,c){

ho=d,mi=e,se=f;

}

void Tout(void){Dout();cout<<ho<<' '<<mi<<' '<<se<<endl;}

};

void main(void){

cTime t1(2010,4,30,15,20,23);

t1.Tout();

}

2.以三维坐标类cPoint为基类派生圆类cCircle,新增数据成员半径;再以圆类为基类派生圆柱体类cColumn,新增数据成员高度,要求有构造函数、输出所有成员的函数,在相关类中定义求圆面积的成员函数、求体积的成员函数,测试程序正确性。

国家二级C++机试(继承和派生)模拟试卷5(题后含答案及解析)

国家二级C++机试(继承和派生)模拟试卷5(题后含答案及解析)

国家二级C++机试(继承和派生)模拟试卷5(题后含答案及解析) 题型有:1. 选择题

选择题

1.下列有关继承和派生的叙述中,正确的是( )。

A.如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员

B.派生类的成员函数可以访问基类的所有成员

C.基类对象可以赋值给派生类对象

D.如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类

正确答案:D

解析:止b题考查的是继承和派生。无论是哪种继承方式,派生类都能够访问基类的公有和保护成员,而不能访问基类的私有成员,故选项A和B错误;公有继承时,基类的对象不可作为派生类的对象处理,即基类对象不可赋值给派生类对象,所以选项C错误。知识模块:继承和派生

2.在类声明中,紧跟在“public;”后声明的成员的访问权限是( )。

A.私有

B.公有

C.保护

D.默认

正确答案:B

解析:类中提供了3种访问控制的权限:公有。私有和保护。其中公有类型定义了类的外部接口,任何一个外部的访问都必须通过外部接口进行。私有类型的成员只允许本类的成员函数访问,来自类外部的任何访问都是非法的,保护类型介于公有类型和私有类型之间,在继承和派生时可以体现出其特点。知识模块:继承和派生

3.有如下类定义:class XX{int xdata;public:XX(int n=0):xdata(n){}};class YY:public XX{int ydata;public:YY(int m=0,int n=0):XX(m),ydata(n){}};YY类的对象包含的数据成员的个数是( )。

c 继承与派生练习题

c 继承与派生练习题

c 继承与派生练习题

C++是一种面向对象的编程语言,其中最重要的概念之一就是继承与派生。继承允许一个类(称为派生类)从另一个类(称为基类)中继承属性和行为。这个过程允许我们在派生类中使用基类的成员,同时还可以添加新的成员或者修改基类成员的行为。

在这篇文章中,我们将通过一些练习题来巩固与继承与派生有关的概念和技能。这些练习题旨在帮助读者更好地理解和应用这些概念。

首先,考虑一下以下的代码段:

```cpp

class Shape {

protected:

int width, height;

public:

Shape(int w, int h) : width(w), height(h) {}

virtual int area() = 0;

};

class Rectangle : public Shape {

public:

Rectangle(int w, int h) : Shape(w, h) {}

int area() override { return width * height; }

};

class Triangle : public Shape {

public:

Triangle(int w, int h) : Shape(w, h) {}

int area() override { return (width * height) / 2; }

};

```

通过观察上述代码,我们可以看到Shape是一个基类,其派生类有Rectangle和Triangle。这些派生类通过公有继承的方式继承了Shape类

国家二级C++机试(继承和派生)模拟试卷16(题后含答案及解析)

国家二级C++机试(继承和派生)模拟试卷16(题后含答案及解析)

国家二级C++机试(继承和派生)模拟试卷16(题后含答案及解析) 题型有:1. 选择题

选择题

1.建立一个有成员对象的派生类对象时,各构造函数体的执行次序为( )。

A.派生类、成员对象类、基类

B.成员对象类、基类、派生类

C.基类、成员对象类、派生类

D.基类、派生类、成员对象类

正确答案:C

解析:建立派生类对象的时候,构造函数的执行顺序如下:执行基类的构造函数,调用的顺序按照基类被继承时候的顺序(自左向右)。然后是执行成员对象的构造函数,调用顺序按照各个成员对象在类中的声明顺序(自上而下),最后是执行派生类的构造函数。知识模块:继承和派生

2.有如下类定义和变量定义:c1ass Parents{ public: int publicData; private: int privateData; );c1ass ChildA:public Parents{/*类体略*/}; c1ass ChildB:private Parents{/*类体略*/}; ChildA a;ChildB b;下列语句中正确的是( )。

A.cout<<a.publicData<<end1;

B.cout<<a.privateData<<end1;

C.cout<<b.publicData<<end1;

D.cout<<b.privateData<<end1;

正确答案:A

解析:基类Parents的私有成员privateData在派生类ChildA和ChildB中是不可以访问,所以选项B、D是错误,而派生类ChildB私有继承基类Parents,所以基类Parents的公有成员publicData在派生类ChildB中变为私有成员,只能在派生类ChildB内部访问,因而选项C是错误的。派生类ChildA公有继承基类Parents,所以基类Parents的公有成员publicData在派生类ChildA中可以访问。知识模块:继承和派生

c继承习题

c继承习题

c继承习题

一、实验目的:

(1)学习定义和使用类的继承关系,定义派生类。(2)熟悉不同继

承方式下对基类成员的访问控制。(3)掌握继承的其他有关知识

二、实验题目(此部分必做):1.题目1

a)定义一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员函数SetAge(intn)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?编程试试看。

b)定义一个基类BaeCla,有整型成员变量Number,构造其派生类DerivedCla,观察构造函数和析构函数的执行情况。

c)定义一个车(vehicle)基类,具有Ma某Speed、Weight等成员变量,Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车类有高度(height)等属性,汽车类有座位数(SeatNum)等属性。从bicycle和motorcar派生出摩托车(motorcycle)类,在继承过程中,

注意把vehicle设置为虚基类。如果不把vehicle设置为虚基类,会有什

么问题?编程试试看。

实验提示:

(1)编写程序定义基类Animal,成员变量age定义为私有的。构造

派生类dog,在其成员函数SetAge(intn)中直接对age赋值时,会出现类

似以下的错误提示:

errorC2248:’age’:cannotacceprivatememberdeclaredincla‘Animal

’errorC2248:’age’:cannotacceprivatememberdeclaredincla‘Anima

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
cin>>color;Setcolor(color);
cout<<"狗的颜色"<<itscolor<<"体重"<<GetWeight()<<"年龄"<<ห้องสมุดไป่ตู้etAge()<<endl;
}
void main()
{
Dog dog1;
}
(4)设计人员基类Person。其成员包括:
数据成员:姓名(字符数组)、性别(字符数组)和年龄(整型)
void getcolor(){cout<<"狗的颜色"<<itscolor<<endl;}
//定义Dog类的数据成员和成员函数
};
////////////////////////
Mammal::Mammal()
{
int age1,weight1;
cout<<"请输入动物的年龄:"<<endl;
cin>>age1;
class Mammal
{
protected:
int itsAge;
int itsWeight;
public:
Mammal();
~Mammal();
int GetAge(){return itsAge;}
void SetAge(int age) {itsAge=age;}
int GetWeight() { return itsWeight;}
void SetWeight(int weight) {itsWeight= weight;}
};
class Dog : public Mammal
{
protected:
char itscolor[20];
public:
Dog();
void Setcolor(char *color) {strcpy(itscolor,color);}
SetAge(age1);
cout<<"请输入动物的体重:"<<endl;
cin>>weight1;
SetWeight(weight1);
}
Mammal::~Mammal()
{
cout<<"Destructor called."<<endl;
}
Dog::Dog()
{char color[20];
cout<<"请输入狗的颜色:"<<endl;
Postdoctor();
void setpostdoctor();
void displaypostdoctor();
};
/////////////结构函数
Person::Person()
{
setperson();
}
Teacher::Teacher()
{
setteacher();
}
Student::Student()
class Mammal
{
protected:
int itsAge;
int itsWeight;
public:
int GetAge(){return itsAge;}
void SetAge(int age) {itsAge=age;}
int GetWeight() { return itsWeight;}
数据成员:无
成员函数:SetPostDoctor,设置数据成员函数;
DisplayPostDoctor,显示数据成员函数;
主函数:
输入并输出一个教师、一个本科生、一个博士后数据。
#include <iostream.h>
#include <string>
using namespace std;
#define n 20
{
setstudent();
}
Postdoctor::Postdoctor()
{
}
//////////////////设置数据//////////////////
{
protected:
char job[n];
char room[n];
char subject[n];
public :
Teacher();
void setteacher();
void displayteacher();
};
class Student:virtual public Person
{
protected:
成员函数:SetPerson,设置人员数据函数;
DisplayPerson,显示人员数据函数;
设计派生类1:Teacher,派生于Person。新增成员包括:
数据成员:职称(字符数组)、教研室(字符数组)和所授课程(字符数组)
成员函数:SetTeacher,设置数据成员函数;
DisplayTeacher,显示数据成员函数;
1.定义一个哺乳动物类Mammal,并从中派生出一个狗类Dog,下面给出Mammal类的定义,要求:
(1)添加Dog类的颜色数据成员,访问属性为私有,通过SetColor和GetColor成员函数来对颜色进行设置和获取。
(2)分别为基类和派生类添加相应的构造函数(有参、无参)和析构函数,并进行测试。
////////////类的定义
class Person
{
protected:
char name[n];
char sex[n];
int age;
public:
Person();
void setperson();
void displayperson();
};
class Teacher :virtual public Person
void SetWeight(int weight) {itsWeight= weight;}
};
class Dog : public Mammal
{
//定义Dog类的数据成员和成员函数
};
改:
#include <iostream.h>
#include <string>
using namespace std;
char major[n];
char banji[n];
int leibie;
public :
Student();
void setstudent();
void displaystudent();
};
class Postdoctor:public Teacher,public Student
{
public :
设计派生类2:Student,派生于Person。新增成员包括:
数据成员:专业(字符数组)、班级(字符数组)和类别(int)
其中类别取值:1(本科生)、2(硕士生)、3(博士生)
成员函数:SetStudent,设置数据成员函数;
DisplayStudent,显示数据成员函数;
设计派生类3:PostDoctor(博士后),多重继承于Student与Teacher。新增成员包括:
相关文档
最新文档