对象是类的一个实例,类是对同一种对象的什么,一个对象则是类的一个什么

  对象是类的一个实例,类是对同一种对象的什么,一个对象则是类的一个什么

  以后我的博客会穿插更新C,数据结构(C语言)和Linux的知识,以后还会更新一些经典的面试问题。希望大家能支持我!

  那么就从今天的知识点开始吧。今天的内容是关于C非常重要的类和对象的知识点。这个内容,我打算分五次带你全面了解类和对象。(使用的编译器是vs2013)

  首先说两种思维方式:第一种是面向过程的,这是一种以过程为中心的编程思想。例如,如果我们想在家外面吃饭,我们需要下楼,去餐馆,叫服务员,点餐和等待.这个流程是流程化的核心,更注重一个订单的全过程;第二种是面向对象,把数据和数据的操作方法放在一起。作为一个相互依存的整体,还是上面的例子。我们想在家外面吃饭。我们只需要打开手机,点外卖。我们只需要发出编号命令,中间不需要担心流程,可以节省很多步骤和时间。

  然后,回到大家熟悉的编程语言,C语言是典型的面向过程的语言,以过程为中心,分析解决问题的步骤,通过函数逐步解决问题;c是面向对象的语言,它以对象(具体对象)为中心,把一件事情分解成不同的对象,对象之间是有交互的。

  接下来,我们来介绍一下C语言中的关键知识:类和对象。

  我们先来看上面的代码。在C语言中,这是错误的结构。结构中不能有函数,只能放简单的定义变量;但在C中,结构(类)不仅可以定义变量,还可以定义函数。因为设计C时考虑了C语言的存在,所以C语言的代码可以在cpp环境下正常运行。但是,人们还是更喜欢C特有的类定义类。

  class的定义,关键字:class,类的名字是Student,{}里的那个是类的主体。类中的元素称为类的成员;类中的数据称为类的成员变量或属性;类函数被称为类的成员函数或方法。

  接下来介绍类定义的两种方法:(1)将成员函数放在类中;(2)成员函数的声明和定义是分离的。第一个是上图所示的类既有成员变量又有成员函数;第二种是将函数和成员变量的定义放在类中。(如下图所示)

  两种写法都很好理解。过去,在数学C语言的项目中经常使用第二种方法。接下来,我们来解释一下图中的圆圈。

  首先,我们需要了解类的访问限定符和包装器。

  访问限定符:是C实现封装的方式。它将对象的属性和方式与类结合起来,使对象更加完整,并通过访问权限有选择地向外部用户提供接口。

  注意:访问权限的范围是从访问限定符的开头到受限访问限定符的结尾。

  如上图,公有的范围是从这条线到私有之前;私有作用域是这行的开始,也是类的结束。

  那么,问题来了,既然有带限定词的类,那么class和strcut的限定词是什么呢?

  在C编辑器下,需要运行并兼容C语言,所以C中的struct可以作为类使用。两者的区别在于限定符:struct的默认访问模式是public,class的默认访问模式是private。

  现在我们来谈谈面向对象的三个特征(有些书谈到了四个特征):封装、继承、多态、(抽象)

  在类和对象阶段,我们只需要知道什么是封装,那么什么是封装呢?

  封装:是数据和操纵数据的方法的有机结合,隐藏对象的属性和实现,只向公众公开接口与对象交互。比如,就像我们手里的手机,只有三个可用的接口:插电源、耳机孔、卡槽;当我们点击手机时,我们不知道它是如何工作的,它可以反映我们的行为。

  接下来说一下上面提到的类的作用域,即类定义了一个新的作用域,类的所有成员都在类的作用域内。要在类外定义成员,需要使用:(作用域解析器)一个众所周知的成员所属的作用域。

  当我们在类外声明一个函数时,只需要在函数名前加上class:就可以了,也就是说这个函数属于类的作用域。

  先说类的物化。其实理解起来很简单,就像下图。类相当于int类型,a1是Student的物化。我们也可以更直观的理解,一个类就是一个模型的设计图,一个类的物化就是一个拼出来的模型。相应的,类不能存储实际的存储数据,只有类的物化才能做到,占用内存空间。

  最后一点是计算类对象的大小。让我们先来看一段代码:

  通过这段代码调试,我们可以发现a1调用Init和Print函数,a2调用Init和Print函数。

  按照正常的计算逻辑,首先a1和a2的大小应该是一样的,都是36;但是因为调用函数的地址是一样的,为了节省空间,最人性化的指针是a1和a2。

  但是最后,实际操作:

  我们发现它是28,那么这是怎么出来的呢?

  刚好28个字节,所以我们可以得出结论,在计算类的大小时,成员函数不在计算范围内。

  好了,今天就到这里。希望大家认真看知识点。如有不足或错误,望各位批评指出。感谢观看!

  转载请联系作者取得转载授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • office2010激活密钥大全 怎么永久激活office2010
  • project2010产品密钥免费_project2010激活密钥永久激活码
  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • chatgpt是什么?为什么这么火?
  • ChatGPT为什么注册不了?OpenAI ChatGPT的账号哪里可以注册?
  • OpenAI ChatGPT怎么注册账号?ChatGPT账号注册教程
  • chatgpt什么意思,什么是ChatGPT ?
  • CAD中怎么复制图形标注尺寸不变,CAD中怎么复制图形线性不变
  • cad中怎么创建并使用脚本文件,cad怎么运行脚本
  • cad中快速计算器的功能,cad怎么快速计算
  • cad中快速修改单位的方法有哪些,cad中快速修改单位的方法是
  • cad中心点画椭圆怎么做,cad轴测图怎么画椭圆
  • CAD中常用的快捷键,cad各种快捷键的用法
  • 留言与评论(共有 条评论)
       
    验证码: