zoukankan      html  css  js  c++  java
  • C++笔记004:C++类通俗点说


    原创笔记,转载请注明出处!

    点击【关注】,关注也是一种美德~


    核心

    C++的类就是对C语言的结构体进行了扩展,C++的结构体可以包含函数!

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

    我们学习C++为什么要复习C语言结构体呢?

    在我看过的对C++进行讲述的教材中,开篇往往是两个字“对象”!因为C语言是面向过程的,而C++特色是面向对象!所以大多数书籍最开始就在说面向对象的事情。

    但我在最初学习的过程中发现自己对“对象”这个词汇....总是想偏,对这个词汇云里雾里的,什么叫面向对象啊,看了一通没看懂。所以我们先不深究什么叫面向对象。

    我们先来略看一下C语言中的结构体。对于这个大家应该是很熟悉的,如果对C语言结构体的概念有模糊,请自行查阅资料。

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

    C语言结构体

    在C语言编程中,我们定义自己的身高,可以用整型int变量,定义一家人(比如三口人)的身高,可以用int型数组。

    如果我们要表示某个游戏中各个角色的姓名、身高(单位cm)、体重(单位kg),这三种并不是同一类型的数据,那我们就用到结构体了。

    struct hero

    {

      unsigned char name[10];

        int height;

        float weight;

    };

    struct hero LuBan; //定义“LuBan”变量

     

    结构体或称结构,就像int、float等基本类型一样,也是一种数据类型,使用户自己定义的,它允许存储不同类型的数据项,就像上面的hero结构体。就像打包封装,把一些有共同特征(上面的身高体重等都属于同一个角色)的变量封装到内部,通过一定的方法访问和修改这些内部变量。

    关于更多的结构体的知识我们这里不多说。

    我们在结构体内部定义了一些变量,看到“LuBan”这个结构,我们就能查找到他的身高、体重等数据。

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

    函数

    LuBan角色具有“河豚手雷”这个技能,就像炒菜一样,油、盐、菜、蛋...出锅!这样一个顺序就完成了一道美食,LuBan也是用一个顺序完成了这个技能。左闪、右躲...杀!

    这就是一个函数。

    一个变量定义了一个角色的角色性质,一个函数定义了一个角色的大招使用过程!所以C语言的面向过程很好理解。

    这个LuBan我们就可以叫做一个对象!他的身高、体重等这些变量我们称之为“属性”或者“状态”,他具有的大招(能干什么)我们称之为“行为”。

    就像LuBan,这个角色有姓名、性别、身高、体重等这些“数量”,也就是变量=属性=状态;他可以吃饭、睡觉、打怪,这些行为=函数。所以,我们就叫C语言中的变量为“属性”或“状态”,C语言中的函数称为“行为”。

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

    结构到类

    在C语言的结构体定义中,我们只是把变量放到了结构体中,而C++的类就是对C语言的结构体进行了扩展,C++的结构体可以包含函数!

    举个栗子:

    struct hero

    {

    //属性

      unsigned char name[10];

        int height;

        float weight;

     

    //行为

        void eat()

    {吃肉!}       //仅做说明

    void sleep()

    {站着睡!}

    void KillMonsters()

    {使用河豚手雷打怪!}

    };  //分号

    struct hero LuBan; //定义“LuBan”变量

     

    调用:

    void main()

    {

    LuBan.height=150;

    LuBan.weight=50;

    LuBan.KillMonsters();

    }

    “角色”这个结构体的成员,与C语言不同,我们既有变量也有函数,变量和函数都属于该结构体,变量叫成员变量,函数叫成员函数。C语言的结构智能描述一个对象的属性,不能描述一个对象的行为。

    在面向对象的程序设计中,对象具有属性(状态)和行为,属性保存在成员变量中,行为通过成员方法(函数)来实现。成员方法又是什么?

    其实方法和函数可以理解为一回事。只是在C++中“函数”被称之为“方法”。

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

    C++类的定义

    前面看明白了,这个地方就不多说话!

    结构体定义中的关键字struct换成class,就得到了C++中类的定义。

    class Hero    //类名习惯首字母大写

    {

    //属性

      unsigned char name[10];

        int height;

        float weight;

     

    //行为

        void eat()

    {吃肉!}       //仅做说明

    void sleep()

    {站着睡!}

    void KillMonsters()

    {使用河豚手雷打怪!}

    };  //分号

    类定义的就叫对象。

    Hero LuBan; //定义了一个Hero类的对象LuBan


    原创笔记,转载请注明出处!

    更多精彩请关注微信公众号:依法编程


  • 相关阅读:
    jquery 序列化form表单
    nginx for windows 安装
    nodejs idea 创建项目 (一)
    spring 配置 shiro rememberMe
    idea 2018 解决 双击shift 弹出 search everywhere 搜索框的方法
    redis 在windows 集群
    spring IOC控制反转和DI依赖注入
    redis 的安装
    shiro 通过jdbc连接数据库
    handlebars的用法
  • 原文地址:https://www.cnblogs.com/tyyhmtyyhm/p/8971846.html
Copyright © 2011-2022 走看看