面向对象编程实验课随笔(派生)

本文记录了一次面向对象编程实验,主要探讨了派生类的声明和构造函数定义,以及基类成员在不同继承方式(public, private, protected)下的访问属性和规则。通过对代码的修改和调试,指出了访问权限变化导致的错误原因。" 108486987,9431844,百度智能小程序编辑器内核升级:6大高效功能解析,"['百度智能小程序', 'visual studio code', '小程序开发', '代码编辑器', 'Git']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

试验目的:

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

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

写出以下程序并运行结果:

#include<iostream>
using namespace std;
class Base
{
public:
	void setx(int i)
	{
		x = i;
	}
	int getx()
	{
		return x;
	}
public:																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																			
	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;
}

结果如下:

 按照以下要求,对程序进行修改后再调试,指出调试中出错的原因:

1.将基类Base中数据成员x的访问权限改为private时,会出现哪些错误,为什么?

 由于Base类中的成员数据x被改为私有,x不能被外部函数调取,也不能被派生类的成员函数调取。

2.将基类Base中数据成员x的访问权限改为protected时,会出现哪些错误,为什么?

由于Base类中的数据成员x被改为保护,x可以被公有派生类的成员函数保护调取,但不可被外部函数调取。

3.在原程序的基础上,将派生类Derived的继承方式改为private时,会出现哪些错误,为什么?

由于Derived的继承方式被改为private,基类中的成员都不可被外部访问。

4.在原程序的基础上,将派生类Derived的继承方式改为protected时,会出现哪些错误,为什么?

 由于Derived的继承方式被改为protect,基类中的成员也都不可以被外部访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值