C++学习日志6

1.继承

        继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。

 继承的本质是复用,之前复用最多的地方是函数中复用,继承则体现在类。

具体这样理解:::首先我设置两个类

class Student
{
private:
    string _name;
    string _id;
    int age;
    string adders;
    //学号
   //专业
   //宿舍
}

 

class teacher
{
private:
    string _name;
    string _id;
    int age;
    string adders;
    //学院
   //所教科目
}

仔细观察这两个类,我们可以发现,老师和学生中有共有的,也有自己的,如果向上面这样写,会造成代码冗余。为了解决这个问题,我们就要用到继承。

我们可以用一个类Person存放他们俩共有的,用这个类链接Teacher和Student,这样就保证了这Teacher和Student两个类可以用Person中的信息。

class Person
{
private:
    string _name;
    string _id;
    int age;
    string adders;
};

class Student:public Person
{
protected:
   int _stuid;   //学号
};

class Teacher:public Person
{
protected:
   int _jobid;   //工号
};

继承不仅会继承父类的成员,而且还会继承父类的成员函数。

class Person
{
public:
    void Print()
    {
       cout<<"name:"<<_name<<endl;
       cout<<"age:"<<_age<<endl;
    }

protected:
	string _name = "peter"; // 姓名
	int _age = 18; // 年龄

};
class Student : public Person
{
protected:
	int _stuid; // 学号
};
class Teacher : public Person
{
protected:
	int _jobid; // 工号
};
int main()
{
	Student s;
	Teacher t;
	s.Print();
	t.Print();
	return 0;
}

打印结果为:

name:peter

age:18

name:peter

age:18

2.继承的定义 

   

 这下面的基本上参照原博客:(39条消息) C++进阶之继承_cls-evd的博客-CSDN博客

  • 基类private成员在派生类中无论以什么方式继承都是不可见的。这里的不可见是指基类的私有成员还是被继承到了派生类对象中,但是语法上限制派生类对象不管在类里面还是类外面都不能去访问它
  • 基类private成员在派生类中是不能被访问,如果基类成员不想在类外直接被访问,但需要在派生类中能访问,就定义为protected。可以看出保护成员限定符是因继承才出现的

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值