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


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

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


  • 相关阅读:
    OpenStack Trail 部署文档(二)基础服务部署
    OpenStack Trail 部署文档(一)环境规划
    OpenStack Trail 部署文档
    配置kubectl在Mac(本地)远程连接Kubernetes集群
    elasticsearch*3 + Es-Head + kibana Docker集群
    Flex 布局教程:语法篇
    PHP 数组 array_merge 和 数组 + 加号操作的区别
    Redis分布式锁
    Mysql中Exists和In的使用
    让PHP7达到最高性能的几个Tips
  • 原文地址:https://www.cnblogs.com/tyyhmtyyhm/p/8971846.html
Copyright © 2011-2022 走看看