C++之单继承

         单继承定义:从一个基类中派生的继承称为单继承。也可以说,单继承的派生类只有一个基类。在单继承中,一个基类可以生成多个派生类,但是每个派生类只有一个基类。
      单继承派生类的定义格式:

      class   <派生类名>:  <继承方式>  <基类名>

      {

             <派生类新成员的定义>

       };

      其中<派生类名>是从一个<基类名>中派生出来的类名,并且该派生类是按指定的<继承方式>派生的。

      一,单继承的公有继承

<span style="font-size:18px;">#include <iostream>
using namespace std;
class A
{
public:
	void f1();//定义的公有成员函数
protected:
	int j1;//保护数据成员
private:
	int i1;
};
class B:public A
{
public:
	void f2();
protected:
	int j2;
private:
	int i2; 
};
int main()
{
	B b;
	b.f1();//可以访问
	b.j1;//非法
	b.i1;//非法
	return 0;
}</span>

        程序分析:

       在公有继承时,派生类的成员函数可以访问基类中的公有成员和保护成员,        

                                派生类的对象可以访问基类中的公有成员。

       二,单继承的私有继承(默认的继承方式)

<span style="font-size:18px;">#include <iostream>
using namespace std;
class A
{
public:
	void f(int i);//定义的公有成员函数
       { cout<<i<<endl; }
	void g()
	{ cout<<"A\n"; }
};
class B: A//默认的为私有继承方式
{
public:
    void h()
	{ cout<<"B\n"; }
	A::f;//说明类A的成员函数f()为派生类B的公有函数
};
int main()
{
	B b;
	b.f(10);
	b.g();
	b.h();
	return 0;
}
</span>

 

         程序分析:

       在私有继承时,派生类中的成员函数可以访问基类中的公有成员和保护成员,

                                派生类的对象都不能访问基类中的任何成员。

       三,单继承的保护继承

<span style="font-size:18px;">#include <iostream>
#include <Cstring>
using namespace std;
class A
{
public:
	A(const char *name1)
	{ strcpy(name,name1); }
protected:
	char name[80];
};
class B:protected A
{
public:
	B(const char *nm):A(nm)
	{}
	void Print() const
	{ cout<<"name: "<<name<<endl; }
};
int main()
{
	B b("lu");
	b.Print();
	return 0;
}</span>

            程序分析:

       在保护继承下,派生类的成员函数可以访问基类中的公有成员和保护成员,

                                派生类的对象都不能访问基类的任何成员。

 

     

 

 

 

                                                       
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验题目1:班级学生学期成绩管理系统 (1)程序功能简介 灵活运用继承、对象成员等机制,设计一个能够实现班级学生学期成绩管理的程序。 (2)程序设计说明 ① 个人信息CPerson的数据成员有姓名、性别、年龄、身份证号等数据成员,成员函数根据需要自行设计; ② 学生CStudent从CPerson派生,并增加学号、CCourse对象成员数组(大小至少3个)等数据成员,并根据需要自行设计成员函数,包括能够求解所选修课程的总学分、显示某个学生基本信息和课程信息的成员函数; ③ 课程CCourse包括课程名、学分、分数、任课老师等数据成员,成员函数根据需要自行设计; ④ 班级CClass的数据成员有班级名称、班级人数、CStudent对象成员数组(大小由构造函数确定)等。本班级CClass的对象成员数组需要在构造函数中用new动态分配内存空间,在析构函数中用delete释放。在CClass中设计包括能够求解最高成绩、最低成绩和平均成绩以及通过学号查找并输出某个学生全部信息(例如Seek())等功能在内的成员函数; ⑤ 构造三十个学生的数据,每个学生都有三门课程成绩,输出并显示这些数据; ⑥ 根据的需要添加适当的其它成员,编写完整的程序并测试。 (3)程序调试运行 运行程序查看结果,并进行源代码调试和优化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值