Cherno C++ P26 C++继承

编程入门 行业动态 更新时间:2024-10-05 21:19:45

<a href=https://www.elefans.com/category/jswz/34/999703.html style=Cherno C++ P26 C++继承"/>

Cherno C++ P26 C++继承

YouTube视频链接

C++继承

本文是ChernoP26视频的学习笔记。
  面向对象编程是一个巨大的编程范式,类之间的继承是它的一个基本方向,它是我们可以实际利用的最强大的特性之一。继承允许我们有一个相互关联的类的层次结构,它允许我们有一个包含公共功能的基类,然后允许从那个基类中分离出来,从最初的父类创建子类。类、继承等主要作用是可以避免代码重复。
  我们可以把类之间的所有公共功能放在一个父类中,然后从基类(父类)创建(派生)一些类,稍微改变下或者引入全新的功能。继承给我们提供了这样一种方式,将这些公共代码放到基类中。
  Main.cpp如下

#include<iostream>class Entity
{
public:float X, Y;void Move(float xa, float ya){X += xa;Y += ya;}
};class Player : public Entity
{
public:const char* Name;void PrintName(){std::cout << Name << std::endl;}
};int main()
{Player player;player.Move(5, 10);player.X = 2;std::cin.get();
}

  Main.cpp表示,假设我有一个Entity类,它将管理游戏中所有的实体对象。每个实体在游戏中都有自己的位置X和Y。然后我们通过move方法赋予每个实体移动的能力,xa,ya作为参数,表示想要移动的大小。这样我们就有了基类Entity。我们可以利用继承的力量,扩展这个Entity实体类,来创建一个名为Player的新类型,然后让它存储新数据,比如名字以及提供额外的功能。
  我们在声明类型中写一个冒号,然后写public Entity,就把Player变成Entity的子类。现在Player拥有Entity的所有东西,比如说类成员X和Y。任何在Entity类中不是私有的东西,实际上都可以被Player访问。Player总是Entity的超集,意味着Player总是会拥有Entity的一切,也可能会更多。
  因为有浮点数X和Y在Entity类中,我们可以打印Entity对象的大小到控制台。我们可以看到Entity的大小是8。
  如果我们继续打印Player的大小,如果Player没有扩展Entity,它是一个独立的类,只有const char指针,应该是4字节的内存。但是因为Player扩展了Entity,它将继承了Entity类中的所有变量,所以大小是12。

更多推荐

Cherno C++ P26 C++继承

本文发布于:2024-02-28 03:24:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1768016.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Cherno

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!