继承 Inheritance
(一)学习目的
1.理解什么是继承
2.会运用简单的继承
(二)什么是继承:有其父必有其子
既然是叫继承,那么就会有一个父类一个子类,子类会继承父类的特征,但是又不完全和父类相同。就像你继承你父亲的基因,但是你不是你父亲。
class Creature//创建父类
{
public:
string type;
int eyes;
};
class Spider:public Creature//创建子类,继承父类Creature的特性
{
public:
float PoisonDamage;//定义伤害
Spider()//创造构建函数
{
PoisonDamage = 100.0;
eyes = 8;//定义父类中的眼睛数量
type = "Arachnid";//定义父类的物种
}
};
(三)继承与构造函数
在这里我先创建了一个动物类总体称为Animal,并且编写了构造函数和构造函数的重建
#include <iostream>
#include <string>
using namespace std;
class Animal
{
public:
Animal();
Animal(string name,int age,int num_limbs);
string Name;
int Age;
int Number0fLimbs;
void Report();
};
int main()
{
Animal animal;
animal.Report();
Animal animal_2("cheetah", 7, 5);
animal_2.Report();
system("pause");
}
Animal::Animal()
{
cout << "动物生成!\n" << endl;
Name = "default";
Age = 2;
Number0fLimbs = 4;
}
//构造函数的重建
Animal::Animal(string name, int age, int num_limbs)
:Name(name), Age(age), Number0fLimbs(num_limbs)
{
Report();
}
void Animal::Report()
{
cout << "Name:" << Name << endl;
cout << "Age:" << Age << endl;
cout << "Number0fLimbs:" << Number0fLimbs << endl;
}
此时我们想要增加一个子类“狗狗”则
class Dog:public Animal
{
public:
Dog();
Dog(string name, int age, int num_limbs);
};
//构造函数
Dog::Dog()
{
cout << "狗狗生成!\n" << endl;
}
Dog::Dog(string name, int age, int num_limbs)
{
Animal(name, age, num_limbs);//把父类的默认参数输入,只有接受三个参数的时候调用重构的构造函数
}
我们也可以再次在以狗狗为父类继续继承,这个柯基既有动物的特征也有狗狗的特征,这个柯基同样可以接受指定的参数输入
class Corgi:public Dog
{
};
参考来源
https://www.bilibili.com/video/BV1Dd4y1R7VS?p=50&spm_id_from=pageDriver&vd_source=201eb8bc288ccc360992decc66897866