C++:类(Class)

发布时间:2024年01月18日

内容整理自:The Cherno:C++系列,2024年1月18日

---------------------------------------------------------------------------------------------------------------------------------

简单地说,

类,只是? 数据+功能 的整合体。类,就是一个语法糖,让你的代码简单干净。

比如说游戏,在游戏中,我们怎么去表示一个玩家(player)呢?------我们可能会需要 玩家的位置,玩家的某些属性(性别、攻击值..血条)、玩家的移动速度..可能还要3D模型-----上述所有的数据都需要被储存在计算机的某个地方。

如上,main函数中定义了相关的变量来表示这个player的种种属性,有编程经验的同学应该都可以感觉到,假设开发一个小游戏项目,变量会非常多、非常乱(尤其是有时候搞不清楚这些变量到底是代表什么的时候,会取一些非常长的名字),有2个玩家的时候就已经够乱了,不能想象10个玩家的代码会乱成什么样子(编程时,代码的干净整洁非常重要)。

如上图,就是一堆没有组合在一起的变量。在写完函数之后会显得更加零散、混乱、难以维护。

A Good Idea-----把上面关于Player的这些东西全部“打包”成一个整体

----创建一个Player类,它包含了关于player的所有属性(data)和功能(method)

//classes are 'types',创建类就是创建一个新的变量类型,如同int一样

格式:
class 类名{

};

点击“运行”,发现报错,错误信息提示我们private变量不可访问。

于是引出了下一个关于类的话题-----“可见性”

默认情况下,一个类中的所有东西都是私有的private,这意味着,只有类内部的函数才能访问这些变量,然而,当我们希望能够从main函数中访问这些变量的时候,只需要把我们即将访问的东西全部设置成public就可以了。

public意味着我们可以在类之外的任何地方访问这些变量,?

看这一下子就不报错了。

------------------------------------------------------------------

现在我们想写一个函数,它能够将我们的player位置移动。?

?

现在让我们尝试一下将函数写在Player类的内部。

类内部的函数称为方法 method

functions inside classes are called methods

看看这下代码就干净多了

#include <iostream>
//classes are 'types',创建类就是创建一个新的变量类型,如同int一样
class Player{
public:
    int x,y;//玩家的位置
    int speed;//玩家的速度

    //Player内部的Move方法
    void Move(int xa,int ya){
        x+=xa;
        y+=ya;
    }
};
/*现在我们创建了一个全新的类叫做Player,本质上是一种类型
 *我们可以在main中把它当做其他变量来创建
 */
using namespace std;
int main(){
    Player Luna;
    /*这句话的意思类比 int a;
     * Luna是一个变量,它的类型是Player
     * 由类类型构成的变量被称作“对象”
     * 新的对象变量称为“实例”
     */
    Luna.x=0;
    Luna.y=0;
    Luna.speed=2;
    Luna.Move(1,-1);
    cout<<Luna.x<<","<<Luna.y<<endl;
    return 0;
}

当处理很多代码时,这将会是一个巨大的优势,代码越多,你处理的情况就会越复杂,你就越需要把东西“打包”,来保持代码的干净整洁。

文章来源:https://blog.csdn.net/m0_72979740/article/details/135673407
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。