当前位置: 首页 > news >正文

古建设工程造价管理协会网站小程序引流推广平台

古建设工程造价管理协会网站,小程序引流推广平台,如何做高大上的网站 知乎,wordpress选项卡类与对象#xff08;上#xff09; 一、面向过程和面向对象的区别二、类1、类的引入2、类的定义#xff08;1#xff09;类的基本定义#xff08;2#xff09;类的成员函数的定义方法 3、类的访问限定符4、封装5、驼峰法命名规则6、类的作用域7、类的实例化#xff08;1… 类与对象上 一、面向过程和面向对象的区别二、类1、类的引入2、类的定义1类的基本定义2类的成员函数的定义方法 3、类的访问限定符4、封装5、驼峰法命名规则6、类的作用域7、类的实例化1实例化的概念与作用2类没有实例化对象3类有实例化对象 8、生命周期与作用域的关系 三、类对象模型1、类对象的存储方式只保存成员变量成员函数存放在公共的代码区中2、C语言结构体内存对齐规则3、计算类对象的大小 四、this指针1、示例代码2、this指针的作用3、成员函数的实际参数与错误4、this指针的特性 一、面向过程和面向对象的区别 在学习C之前我们已经学了C语言而C语言是面向过程的计算机语言关注的是过程即要求编程者分析出求解问题的步骤进而通过函数调用的方式逐步解决问题而C是基于面向对象的计算机语言关注的是对象即将一件事情拆分成不同的对象靠对象之间的交互完成要求。但是因为C是在C语言的基础之上创建出来的计算机语言所以C是兼容C语言的即C不是纯面向对象的语言它可以面向对象和面向过程混编。 二、类 1、类的引入 在C语言中有结构体struct的概念在C中因为它兼容C语言的缘故所以struct在C中可以是结构体但确切的说它升级成为了类而类与结构体最明显的两个区别就是能在类里面定义函数和有访问权限的概念。比如用C语言实现栈参见栈与队列里面的结构体中只能有成员变量而不能有成员函数所以实现栈的一系列函数只能在结构体外去实现。但是在C中使用类时更喜欢用class而不是struct虽然两者在C中都是类但class的默认访问权限为private而struct的默认访问权限为public。 2、类的定义 1类的基本定义 class className {//类体由成员函数和成员变量组成 }; //记得加上分号class为定义类的关键字ClassName为要定义的类的名字{}中的内容为类的主体在类定义结束时}后面的分号不能省略。类体中的内容称为类的成员类中的变量称为类的属性或成员变量类中的函数称为类的方法或者成员函数。 2类的成员函数的定义方法 声明和定义全部放在类体中编译器可能会将其当成内联函数处理。 class Person { public:void ShowInfo(){cout _name _sex _age endl;} private:char* _name;char* _sex;int _age; };类的成员函数的声明放在.h文件中成员函数的定义放在.cpp文件中此时在成员函数的定义中成员函数名前需要加类名::。 如果类的成员函数比较小能够成为inline函数则可以直接在类里面定义而如果是大函数、递归的成员函数则应该用声明和定义分离的方法定义成员函数。这样代码比较简洁可读性比较高阅读用这种方法所写的代码时能够比较容易地了解类的作用。什么样的函数适合inline函数参见万字讲解C基础 3、类的访问限定符 public修饰的成员在类外可以直接被访问。protected和private修饰的成员在类外不能直接被访问即只能在类里面访问而在此处protected和private的作用是相似的。访问限定符的访问权限作用域从该访问限定符出现的位置开始到下一个访问限定符出现时结束或者后面没有访问限定符了则到 }结束。访问限定符只在编译时有用当数据映射到内存后被访问限定符修饰的所有成员没有任何区别。 4、封装 将数据和操作数据的方法类的成员函数进行有机结合隐藏对象的属性和实现细节仅对外公开接口和对象进行交互。 5、驼峰法命名规则 函数名、类名等所有单词首字母大写如SnowDragon变量首字母小写后面单词首字母大写如snowDragon成员变量首单词前面加_如_snowDragon 6、类的作用域 类似于函数、循环等等它们都具有作用域类也具有作用域即类的{}所括起来的区域。类的所有成员都被包含在这个作用域中。当在类的类体外定义成员时需要使用::作用域操作符指明定义的成员属于哪个类域。 7、类的实例化 1实例化的概念与作用 用类类型创建对象的过程称为类的实例化。类是对对象进行描述的即它是一个像模型一样的东西限定了类具有的成员定义完成一个类时编译器并没有分配实际的内存空间出来即此时的类不能存储数据。一个类可以实例化出多个对象而实例化出的对象是具有实际的物理空间的即它们能够存储类的成员变量的数据。 2类没有实例化对象 3类有实例化对象 因为类是定义在全局作用域中的而main函数是在类外所以此处要在main函数中调用类的成员变量时得将类中类的成员变量用public访问限定符修饰否则无法进行访问。对_name和_sex成员变量赋值时由于上图的代码在main函数中是用常量字符串对其进行赋值所以_name和_sex需用const进行修饰。 8、生命周期与作用域的关系 作用域影响变量的访问但不影响变量的生命周期。生命周期与变量存储的位置有关当变量所在的空间是在栈上的当变量所在的作用域结束时该作用域在栈上的空间将被操作系统回收而变量也在这块被回收的空间中即它的生命周期也结束了。 三、类对象模型 1、类对象的存储方式只保存成员变量成员函数存放在公共的代码区中 如果要调用类的成员函数编译器会在编译链接时根据函数名去公共代码区找到被调用的函数的地址用反汇编的方式查看时会有call该函数的地址的代码。 2、C语言结构体内存对齐规则 第一个成员从在与结构体偏移量为0的地址处开始存储。对齐数为在编译器默认的对齐数与该成员类型的大小中的较小值VS编译器中的默认对齐数为8。其他成员变量要对齐到对齐数的整数倍的地址处才可以开始存储。结构体总大小为最大对齐数所有变量对齐数的最大值与默认对齐数两者中最小的那个的整数倍。如果嵌套了结构体嵌套的结构体对齐到自己的最大对齐数的整数倍处而结构体的整体大小就是所有最大对齐数含嵌套结构体的对齐数的整数倍。 3、计算类对象的大小 一个类的大小就是该类中所有成员变量的大小之和计算大小总和的方法要注意内存对齐规则。如果类为空类编译器会给该类一个字节来唯一标识这个类的对象。 四、this指针 1、示例代码 class Date { public:void Init(int year, int month, int day){//this nullptr;_year year;_month month;_day day;}void Print(){cout _year _month _day endl;} private:int _year;int _month;int _day; };int main() {Date d1;d1.Init(2023, 8, 15);d1.Print();Date d2;d2.Init(2023, 8, 16);d2.Print();return 0; }2、this指针的作用 在上方的示例代码Date类中有Init与Print两个成员函数但在两个函数的函数体中没有关于不同对象的区分那当d1调用Init函数时该函数是通过this指针进行访问并设置对象。即C编译器给每个”非静态的成员函数“增加了一个隐藏的指针作为函数的形式参数让该指针指向当前对象函数运行时调用该函数的对象在函数体中对所有“成员变量”的操作都是通过这个指针去访问的。只不过所有的操作对用户都是透明的即用户不需要自己传递当前对象的地址作为参数编译器会自动完成这些操作。 3、成员函数的实际参数与错误 4、this指针的特性 this指针的类型类类型* const因为this被const修饰了所以在成员函数中不能给this指针赋值上方代码中注释掉的那行代码且只能在“成员函数”的内部使用。this指针本质上是“成员函数”的形参当对象调用成员函数时编译器会将对象的地址作为实参传递给this形参因为this是形参所以它存在栈上。this指针是类的成员函数的形式参数中第一个隐含的指针形参在VS编译器下传给this的实参是通过ecx寄存器自动传递的不需要用户自己填写该实参。而用寄存器传递会提高this访问变量的效率是否对this指针进行优化是由编译器决定的。只要类的成员函数内部不需要this进行访问则该成员函数的this指针可以为空即调用这个成员函数的对象可以为nullptr。实参和形参位置不能显示传递和接收this指针但是可以在成员函数内部使用this指针。 本文到这里就结束了如有错误或者不清楚的地方欢迎评论或者私信 创作不易如果觉得博主写得不错请务必点赞、收藏加关注
http://www.zqtcl.cn/news/461706/

相关文章:

  • 网站关键字多少合适唐河微网站开发
  • 临沂网站建站专业公司网站开发 文学
  • 乐清网站建设服务定制企业网站建设
  • 简单公司网站模版百度站长工具抓取诊断
  • 网站建设与管理维护 大学论文铁路建设单位网站
  • 贵州企业展示型网站建设wordpress文章点不开
  • 毕业设计可以做网站吗网页版征信报告查询
  • 企业网站每年的费用钢筋网片每平米重量
  • 做网站是属火的职业吗苏州网站建设信息网络
  • 怎么自己建一个论坛网站如何做中国古城的网站
  • 做网站表格网站建设综合实训案例
  • vs2012 网站开发wordpress好看的页面跳转
  • 阿里去要企业网站建设方案书小程序开发 杭州
  • 微信公众号文档网站开发与优化课程总结
  • 网站建设网课海东营销网站建设公司
  • 仿站工具教程视频宣传片免费模板
  • 美食网站建设项目分析报告莱芜都市网人才招聘
  • js做网站福田网站设计公司
  • 郑州做网站好长春市建设工程信息网站
  • 题库网站怎么做做网站文件夹都起什么名字
  • 河南网站怎么备案东台市住房和建设局网站
  • 有什么手机做网站的asp.net网站安全
  • 怎么做查询网站后台做爰的视频网站
  • 迪虎科技网站建设国际市场那个app可以看
  • 怎么做跳转不影响原网站排名wordpress添加邮箱设置
  • 网站内容规范外贸电商怎么做
  • 郑州做网站齿轮wordpress 文章h标签美化
  • 建设银行网站怎么修改手机号码吗网站建设怎样容易
  • 网站建设风险管理计划书户外媒体网站建设免费
  • 学到什么程度可以做网站网站维护的要求包括