栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++上机 派生类与继承

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++上机 派生类与继承

一、实验目的

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

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

二、实验内容

#include
 
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;
}

将基类 base 中数据成员 x 的访问权限改为 private 时,会出现哪些错误,为什么?
将基类 base 中数据成员×的访问权限改为 protected 时,会出现哪些错误,为什么?
在原程序的基础上,将派生类Derived 的继承方式改为 private 时,会出现哪些错误,为什么?
在原程序的基础上,将派生类 Derived 的继承方式改为 protected 时,会出现哪些错误,为什么?

1. 28和38行无法访问x,因为x的访问权限改为private时,派生类也无法直接继承和访问基类的x。
2. 38行的bb.x出现错误,因为x的访问权限改为protected时,派生类的对象无法直接访问x。
3. 35行的bb.setx()、38行的bb.x、40行的bb.gety()出现错误,因为继承方式变为私有继承后,对象无法直接访问类中的私有函数及变量。
4. 35行的bb.setx()、38行的bb.x、40行的bb.gety()出现错误,因为继承方式变为保护继承后,对象无法直接访问基类中的保护函数及变量。

三、心得体会

声明派生类的一般形式为
   class 派生类名:[继承方式] 基类名{派生类新增加的成员};
继承方式包括: public (公用的),private (私有的)和protected(受保护的),如果不写,则默认为private(私有的)。构造函数和析构函数是不能从基类继承的。 不同的继承方式决定了基类成员在派生类中的访问属性。
通过实验我们熟悉了派生类的定义方法和派生类构造函数的定义方法,明白了在不同继承方式的情况下,基类成员在派生类中的访问权限。


  

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/656223.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号