C++第六次上机实验总结

一、实验目的:

①.掌握派生类的声明方法和派生类构造函数的定义方法;

②.掌握不同方式下,基类成员在派生类中的访问属性和访问规则;

二、程序代码:

.h文件


# include <iostream>
using namespace std;

.cpp文件

#include "homework6.h"

class Base
{
public:
	void setx(int i)
	{
		x = i;
	}
		int getx()
		{
			return x;
		}
	int x;
};

class Derived :public Base {

public:
	void sety(int i)
	{
		y = i;
	}
	int gety()
	{
		return y;
	}
	void show()
	{
		cout << "Base::x=" << x << endl;
	}
public:
	int y;
};

int main()
{
	Derived bb;
	bb.setx(16);
	bb.sety(25);
	bb.show();
	cout << "Base::x=" << bb.x << endl;
	cout << "Derived::y=" << bb.y << endl;
	cout << "Base::x=" << bb.getx() << endl;
	cout << "Derived::y=" <<bb.gety()<< endl;
	return 0;
}

三、运行结果:

四、相关问题:

派生类的声明:

         Class 派生名类:[继承方式] 基类名{

              派生类新增的数据成员和成员函数

};

派生类构造函数的一般格式:

          派生类名(参数总表): 基类名(参数表)

{

       派生类新增数据成员的初始化语句

}

 五、基类成员在派生类中的访问属性

基类中的成员

共有派生类中的访问属性

私有派生类中的访问属性

保护派生类中的访问属性

私有成员

不可直接访问

不可直接访问

不可直接访问

公有成员

公有

私有

保护

保护成员

保护

私有

保护

总结:

(1)基类中的私有成员。

无论哪种继承方式,基类中的私有成员不允许派生类继承,在派生类中是不可直接访问的。

(2)基类中的公有成员。

当类的继承方式为公有继承时,基类中的所有公有成员在派生类中仍以公有成员的身份出现。 

当类的继承方式为私有继承时,基类中的所有公有成员在派生类中仍以私有成员的身份出现。

当类的继承方式为保护继承时,基类中的所有公有成员在派生类中仍以保护成员的身份出现。

(3)基类中的保护成员。

当类的继承方式为公有继承时,基类中的所有公有成员在派生类中仍以保护成员的身份出现。

当类的继承方式为私有继承时,基类中的所有公有成员在派生类中仍以私有成员的身份出现。

当类的继承方式为保护继承时,基类中的所有公有成员在派生类中仍以保护成员的身份出现。

六、派生类对基类成员的访问规则

1.私有继承的访问规则

基类中的成员

私有成员

公有成员

保护成员

访问方式

内部访问

不可访问

可访问

可访问

对象访问

不可访问

不可访问

不可访问

       当类的继承方式为私有继承时,基类的公有成员和保护成员被继承后作为派生类的私有成员,派生类的成员函数可以直接访问它们,但是在类外部通过派生类的对象无法访问。

2.公有继承的访问规则

基类中的成员

私有成员

公有成员

保护成员

访问方式

内部访问

不可访问

可访问

可访问

对象访问

不可访问

可访问

不可访问

        当类的继承方式为公有继承时,基类的公有成员被集成到派生类中仍为公有成员,派生类的成员函数可以直接访问他们,在类的外部,也可通过派生类的对象访问它们。基类的保护成员被继承到派生类中仍作为派生类的保护对象,派生类的成员函数可以直接访问它们,但在类的外部,派生类的对象不能访问它们。私有成员在派生类中时不可直接访问的,无论派生类成员函数还是派生类的对象,都无法直接访问基类的私有成员。

3.保护继承的访问规则

基类中的成员

私有成员

公有成员

保护成员

访问方式

内部访问

不可访问

可访问

可访问

对象访问

不可访问

不可访问

不可访问

        当类的继承方式为保护继承时,基类的公有成员和保护成员被继承到派生类中都作为派生类的保护成员,派生类的其他成员可以直接访问它们,但是在类的外部,不能通过派生类的对象来访问它们。基类的私有成员不允许派生类继承,因此在私有派生类中是不可直接访问的。无论是派生类成员还是通过派生类的对象,都无法直接访问基类的私有成员。

七、实验总结

       本次实验完成了类的继承与派生,了解了不同继承方式,基类成员在派生类中的访问属性以及派生类对基类成员的访问规则,派生属性按从严处理,不可直接访问也可以理解为“上级私有”。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值