第十章 继承与派生练习题

本文通过一系列的实例和练习题详细讲解了面向对象编程中的继承与派生概念,包括公有继承、私有继承、构造函数与析构函数、多重继承、虚基类的使用。同时,提供了选择题和编程题,帮助读者巩固所学知识,解决实际编程中可能出现的问题。
摘要由CSDN通过智能技术生成

网易云音乐链接 : 点我听歌.

练习:
一、继承与派生——公有

实例:

#include<iostream.h>
class A			//A类
{
   
private :
	int a;
public :
	void inita(int n)	//初始化A类的成员变量
	{
   
		a=n;
	}
	int geta()			//访问获取A类的值
	{
   
		return a;
	}

};
class B:public A //B类继承A类
{
   
private:
		int b;
public:
	void initb(int m)   //初始化B类的成员变量
	{
   
		b=m;
	}
	int getb()			//访问获取B类的值跟A类的成员变量相乘并返回结果
	{
   
		return b*geta();
	}
};

void main()
{
   
	int s;				//存取后续的值
	B ob;				//创建一个B类的对象ob
	//oa.inita(5);		
	ob.A::inita(5);		//初始化a的值(派生类拥有基类的成员特性)
	ob.initb(8);		//初始化内部b的值
	s=ob.getb();		//调用函数并返回值给 s
	cout<<s<<endl;		//打印输出
}

运行结果:

在这里插入图片描述
二、继承与派生–私有

实例:

#include<iostream.h>
class A					//A类
{
   
private :
	int a;
public :
	void inita(int n)	//初始化成员变量
	{
   
		a=n;
	}
	int geta()			//返回成员变量的值
	{
   
		return a;
	}

};
class B:private A		//B继承A(私有继承)---私有特性
{
   
private:
		int b;
public:
	void initb(int m,int n)   //由于私有继承,需要公有函数来访问并初始化基类
	{
   
		b=m;
		inita(n);				//初始化A类的成员变量
	}
	int getb()					//获取成员变量与基类成员变量的积
	{
   
		return b*geta();
	}
};

void main()
{
   
	int s;						//用于存放返回值
	B ob;						//创建一个对象ob
	ob.initb(8,5);				//初始化成员变量
	s=ob.getb();				//返回乘积
	cout<<s<<endl;				//打印
}

运行结果:

在这里插入图片描述

三、子类的构造函数、析构函数
定义人类 学生类 老师类

实例:

#include<iostream.h>

class person						//创建person类
{
   
public:
	int age;						//年龄
	char *name;						//名字指针
public:
	void eat();						
	void run();						//功能函数(人能干什么)
	person(int x,char *s);			//构造函数---初始化成员变量
	~person();						//析构函数(与构造函数成对存在)
};
void person::eat()					//人类“吃”函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值