什么是继承的概念?
继承:可以使得子类(派生类)具有父类(基类)的属性和方法或者重新定义、追加属性和方法等。
优势:这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。
从概念的定义中不难看出,想要有继承的关系,就至少得有两个自定义类,那么如何让其实现继承的关系呢?
首先,创建两个自定义类,四个文件(Teacher.h、Teacher.cpp、Student.h、Student.cpp)
代码如下:
Teacher.h:
#pragma once
#ifndef _TEACHER_H_
#define _TEACHER_H_
//自定义基类(父类)
class Teacher
{
//公共属性
public:
//受保护的属性
protected:
//私有属性
private:
};
#endif
Student.h:
#pragma once
#ifndef _STUDENT_H_
#define _STUDENT_H_
#include "Teacher.h"
//自定义派生类(子类)
class Student
:public Teacher //冒号 public(公共继承) 父类(基类)class名
{
//公共属性
public:
//受保护的属性
protected:
//私有属性
private:
};
#endif
因为不做任何代码实现,所以,Teacher.cpp和Student.cpp两文件只是包含各自定义的头文件外,也不做任何代码实现。
而继承的方式有三种:public、protected、private。通常的写法都是公有继承,但若是您有其他用途,也不代表不可以用。
前面的篇章,也或多或少地讲解了单个类的三权限知识。
个人猜想:继承的关系考虑到对继承(public、protected、private)属性调用时机的把握,从而进行了细致地规定,对属性进行分门别类的权限管理,就是防止一些重要属性被访问到…
为了更为深入地了解到继承后属性被调用的规则设定,小编在Teacher.h文件中添加一些属性,来看看它的调用时机。
1、公有继承,访问公共属性。
Teacher.h:
#pragma once
#ifndef _TEACHER_H_
#define _TEACHER_H_
#include <iostream>
#include <string>
using std::cout; //输出
using std::endl; //换行
using std::cin; //输入
using std::string; //string字符串数据类型
//自定义基类(父类)
class Teacher
{
//公共属性
public:
//添加自定义输出函数
void Print();
//添加两个变量属性
string m_Name; //姓名
int m_Age; //年龄
//受保护的属性
protected:
//私有属性
private:
};
#endif
添加一个成员函数(Print)和两个成员变量属性(string m_Name、int m_Age)。
Teacher.cpp:
#include "Teacher.h"
//自定义输出函数