响应式网站建设哪里有海外域名商

bicheng/2026/1/26 1:59:03/文章来源:
响应式网站建设哪里有,海外域名商,禾天姿网站开发,外贸业务推广目录 1、前言 2、类的引入 3、类的定义 3.1 类的两种定义方式 4、类的访问限定符 5、类的作用域 6、类的实例化 7、类对象模型 7.1 内存对齐规则 7.1 类对象的存储方式 8、this指针 8.1 this指针的特性 8.2 this指针是否可以为空 1、前言 C语言是面向过程的#…目录 1、前言 2、类的引入 3、类的定义 3.1 类的两种定义方式 4、类的访问限定符 5、类的作用域 6、类的实例化 7、类对象模型 7.1 内存对齐规则 7.1 类对象的存储方式 8、this指针 8.1 this指针的特性 8.2 this指针是否可以为空 1、前言 C语言是面向过程的关注的是过程分析出求解问题的步骤通过函数调用逐步解决问题。 C是基于面向对象的关注的是对象将一件事情拆分成不同的对象靠对象之间的交互完成。 我们来举列子说明一下 比如蒸米饭这件事C语言关注的就是淘米 - 加水 - 加米 - 起锅 - 烧锅 - 水沸腾 - 放入盛有生米的盆 - 烧锅 - 拿出C在这里关注的是对象人、米、水、电饭煲人不需要知道电饭煲如果工作的只需要四个对象之间交互完成任务就可以。 2、类的引入 C语言结构体(struct)中只能定义变量。 而在C中新增加了玩法结构体内不仅可以定义变量也可以定义函数。 举例 struct Person {void personInit(){cout void personInit() endl;}int _age;char _name[20]; }; int main() {Person p;p.personInit();return 0; } 上面结构体的定义在C中更喜欢用class来代替。 3、类的定义 class className { // 类体由成员函数和成员变量组成 }; // 一定要注意后面的分号 class为定义类的关键字ClassName为类的名字{}中为类的主体注意类定义结束时后面分号不能省略。 类体中内容称为类的成员类中的变量称为类的属性或成员变量; 类中的函数称为类的方法或者成员函数。 3.1 类的两种定义方式 3.1.1 声明和定义全部放在类体中 需注意成员函数如果在类中定义编译器可能会将其当成内联函数处理。 class Person { public:void PersonInit(){cout void PersonInit() endl;}private:int _age;char _name[20]; }; 3.1.2 类声明放在.h文件中成员函数定义放在.cpp文件中 注意成员函数名前需要加类名:: //Person.h class Person { public:void PersonInit();private:int _age;char _name[20]; };//Person.c #include Person.h void Person::PersonInit() {cout void Person::PersonInit() endl; } 一般情况下更期望采用第二种方式。 注意一般在声明成员变量的时候成员变量前加_下划线为区分成员函数的形参只要能区分就可以前家下划线是我的一种方式谷歌C规范一般喜欢后加_。 如果成员变量没有特殊标记时当在成员函数内用到成员变量并为其赋值的时候函数会采用局部优先的原理将自己赋给自己这样就达不到预期的效果。 4、类的访问限定符 C实现封装的方式用类将对象的属性与方法结合在一块让对象更加完善通过访问权限选择性的将其接口提供给外部的用户使用。 【访问限定符说明】 1. public修饰的成员在类外可以直接被访问 2. protected和private修饰的成员在类外不能直接被访问(此处protected和private是类似的) 3. 访问权限作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止 4. 如果后面没有访问限定符作用域就到 } 即类结束 5. class的默认访问权限为privatestruct为public(因为struct要兼容C)。注意访问限定符只在编译时有用当数据映射到内存后没有任何访问限定符上的区别。 5、类的作用域 类定义了一个新的作用域类的所有成员都在类的作用域中。在类体外定义成员时需要使用 :: 作用域操作符指明成员属于哪个类域。 例如 class Person { public:void PersonInit();//声明private:int _age;char _name[20]; };//初始化定义的时候函数名前加 Person::表明PersonInit是Person类域的 void Person::PersonInit()//定义 {cout void Person::PersonInit() endl; } 6、类的实例化 用类类型创建对象的过程称为类的实例化。 在实例化之前定义出来的类是不占空间的。 例如 class Person { public:void PersonInit(){cout void PersonInit() endl;}private:int _age; //声明char _name[20]; };int main() {Person::_age 20;//定义开空间Person p;return 0; } 在没有实例化p的时候定义的 class Person 类不会开辟空间。 实例化出了 p 对象这时 p 是占用实际的空间的存储了成员变量。这里实例化后p也不能直接用_age因为是私有的后面会讲如何赋值打印。 类就像是设计图。 类实例化出对象就像现实中使用设计图盖房子。 在没有盖房子之前这块区域没有占空间。 实例化就是按图盖房子这时就占用了空间。 我们可以使用设计图盖多个房子这些房子都占空间 7、类对象模型 如何计算类对象的大小呢 例如 class A { public:void AInit(int a, int b){cout void AInit(int a, int b) endl;}private:int _a;int _b; }; class B {private:int _a;int _b; }; class C {}; int main() {cout 类A的大小 sizeof(A) endl;cout 类B的大小 sizeof(B) endl;cout 类C的大小 sizeof(C) endl;return 0; } 运行结果 总结 1、成员函数不算在类的大小中 2、类的大小只与成员变量有关并遵循结构体对齐规则 3、空类的大小为1字节不存储数据只是占位表示对象存在过。 7.1 内存对齐规则 1. 第一个成员在与结构体偏移量为0的地址处。 2. 其他成员变量要对齐到某个数字对齐数的整数倍的地址处。 注意对齐数 编译器默认的一个对齐数 与 该成员大小的较小值。 VS中默认的对齐数为8 3. 结构体总大小为最大对齐数所有变量类型最大者与默认对齐参数取最小的整数倍。 4. 如果嵌套了结构体的情况嵌套的结构体对齐到自己的最大对齐数的整数倍处结构体的整 体大小就是所有最大对齐数含嵌套结构体的对齐数的整数倍。 7.1 类对象的存储方式 为什么类中的成员函数不占空间那成员函数是存在哪里呢 实例化后的类中只存储类成员变量 成员函数保存在公共的代码段。 我们画图来理解一下 8、this指针 我们这里写一个日期类来看一下 class Date { public:void Init(int year, int month, int day){_year year;_month month;_day day;}private:int _year;int _month;int _day; };int main() {Date d1;d1.Init(2023, 7, 30);return 0; } 这里看似 Init 函数只有三个形参 调用的时候传了三个参数 实际上这里还隐含了一个 this 指针。 我们这里画图来看一下 这里对成员变量赋值的时候前后都会加一个 this- 来接引用访问。 8.1 this指针的特性 1. this指针的类型类类型* const即成员函数中不能给this指针赋值。 2. 只能在“成员函数”的内部使用。 3. this指针本质上是“成员函数”的形参当对象调用成员函数时将对象地址作为实参传递给this形参。所以对象中不存储this指针。 4. this指针是“成员函数”第一个隐含的指针形参一般情况由编译器通过ecx寄存器自动传递不需要用户传递。 因此我们写的时候就不可以这样写 class Date { public:void Init(Date* this, int year, int month, int day){_year year;_month month;_day day;}private:int _year;int _month;int _day; };int main() {Date d1;d1.Init(d1, 2023, 7, 30);return 0; } this指针隐含着如果我们自己加上就是错误的。 this在实参和形参的位置上不能显示写 但是在类里面可以显示的用 如下 class Date { public://this在实参和形参的位置上不能显示写//但是在类里面可以显示的用void Init(int year, int month, int day){this-_year year;this-_month month;this-_day day;}private:int _year;int _month;int _day; };int main() {Date d1;d1.Init(2023, 7, 30);return 0; } 8.2 this指针是否可以为空 我们来看下面几段代码 class Person { public:void PersonInit(){cout void PersonInit() endl;}private:int _age; //声明char _name[20]; };int main() {Person* p nullptr; //初始化为空指针p-PersonInit();return 0; } 运行结果 这里我们就会产生疑问p是空指针为什么可以解引用呢还是正常运行。 这里对于函数定义在类里面且短小编译器会当作内联函数直接展开并不会解引用 而如果声明与定义分离或者编译器不将其当作内联函数就是call Init函数调用函数的地址也不是解引用。 我们继续看 class Person { public:void PersonInit(){cout void PersonInit() endl;}//private:int _age; //声明char _name[20]; };int main() {Person* p nullptr; //初始化为空指针p-PersonInit();p-_age 1;return 0; } 这就会导致运行崩溃对空指针的内容进行解引用。 我们接着上面看 class Person { public:void PersonInit(){cout _age endl;}//private:int _age; //声明char _name[20]; };int main() {Person* p nullptr; //初始化为空指针p-PersonInit();return 0; } 这里在调用Init函数的时候函数里面产生了解引用但是this是空指针这里就会运行崩溃。 空指针不会编译错误只会导致运行崩溃。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/86686.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

朝阳专业网站建设公司电子商务网站后台模板

Wordpress网站的关键字及网页描述关系网站对搜索引擎的友好程度,如果自己手动加显然太折腾了,那如何让WordPress博客自动为每篇文章自动关键字及网页描述。每篇文章的内容不同,我们该如何让wordpress自动添加文章描述和关键词呢?下…

为什么建网站电商网站开发平台用什么人开发

一,redis-事务是否拥有原子性 Redis的单条命令是保证原子性的,但是redis事务不能保证原子性 Redis事务本质:一组命令的集合。----------------- 队列 set set set 执行 -------------------事务中每条命令都会被序列化,执行过…

百度推广找谁网站推广及seo方案

在软件研发领域,项目管理和目标设定尤为关键。一个成功的软件项目不仅需要先进的技术支持,还需要一个清晰、明确且可实现的目标。SMART原则,作为一种高效的目标设定和管理方法,为软件研发提供了有力的指导。SMART是五个英文单词首…

网站设计建设流程图广告招牌制作设计软件

编写一个程序给定两个数字(每个数字均为2位数),根据要求获得新数 并完成打印 新数的千位是第一个数的个位 新数的百位是第一个数的十位 新数的十位是第二个数的十位 新数的个位是第二个数的个位 #include<stdio.h>int main(void…

ps如何做游戏模板下载网站最新项目加盟代理

这是 EF Core 系列的第四篇文章&#xff0c;上一篇文章讲述了 EF Core 中的实体迁移与数据播种。这篇文章盘点一下 EF Core 的几种数据查询方式&#xff0c;内容较多分上下两篇。点击上方或后方蓝字&#xff0c;阅读 EF Core 系列合集。简单查询在 EF Core 中&#xff0c;每个查…

怎么做网站申请广告wordpress Honey 主题

装饰器模式的定义 装饰器模式(Decorator Pattern)是一种结构型设计模式,它允许用户在不修改现有对象结构的情况下,动态地给一个对象添加额外的职责。这种模式创建了一个装饰类,用来包装原有的类。 这种模式创建了一个装饰类,用于包装原有的类,并在保持类方法签名完整性…

营销型网站建设的要素烟台企业网站建站模板

控制器: Deployment: Deployment概述: replicaset:自动创建pod的控制器 Delpoyment控制器: pod的名字需要唯一,在这不写名字,利用标签进行创建 replicas:表示你想要克隆的数量,selector:通过标签.识别哪个pod是我创建出来的.这里的标签和后面元数据里的标签要一致. Cluster…

做网站在哪买域名网页设计与制作教材电子版

在新版本的macos中已经将默认的python升级成了3.x , 今天介绍一个简单的方法在新版本的macos中快速安装 python 2.7的方法, 就是使用brew安装python版本管理工具 pyenv来安装python2.7 # 安装pyenv版本管理工具 brew install pyenv # 安装python2.7 可以安装多个版本的ptyhon…

做网站用的图片怎样压缩企业培训员工培训平台

一、SX1278 数字接口状态映射 从官方文档可知sx1278的数字接口状态映射明细&#xff0c;移植的代码中主要用查询的方式来判断在连续模式下是否接收和发送完成&#xff0c;因此只需要用到DIO0。如果要用到CAD&#xff0c;则需要DIO1管脚。 发送时&#xff1a;DioMapping1寄存器…

做网站的颜色搭配深圳网站制作 优选灵点网络

哈希和unordered系列封装 一、哈希1. 概念2. 哈希函数&#xff0c;哈希碰撞哈希函数&#xff08;常用的两个&#xff09;哈希冲突&#xff08;碰撞&#xff09;小结 3. 解决哈希碰撞闭散列线性探测二次探测代码实现载荷因子&#xff08;扩容&#xff09; 开散列哈希桶代码实现扩…

微信小程序开发教程pdf下载常州抖音seo

引言 我整理了一份 10w 字数的前端技术文档&#xff08;飞书&#xff09;&#xff0c;地址&#xff1a;https://qx8wba2yxsl.feishu.cn/docx/Vb5Zdq7CGoPAsZxMLztc53E1n0k?fromfrom_copylink&#xff0c;欢迎对前端感兴趣的同学查看、共建、分享。 PS&#xff1a;我是一名大四…

深圳网站建设费用是多少谷歌镜像网站怎么做

C#开发的OpenRA游戏之属性RenderSprites(8) 本文开始学习RenderSprites属性,这个属性是跟渲染有关的,因此它就摄及颜色相关的内容,所以我们先来学习一下调色板,这是旧游戏的图片文件保存的格式,如果放在现代来看,不会再采用这种方法,毕竟现在存储空间变大,便宜了,并…

南昌百度搜索排名优化网站内页可以做关键词优化吗

下面是一篇关于如何使用正则表达式验证域名的教程。 如何使用正则表达式验证域名 简介 域名是互联网上网站的地址&#xff0c;每个域名由多个标签&#xff08;label&#xff09;组成&#xff0c;标签之间用点 . 分隔。域名规则有很多细节&#xff0c;但基本要求是&#xff1a…

做网站用phpcms还是孝感网页设计

一些基本概要 1 市面流行的音视频产品&#xff0c;都包含一对一、一对多、多对多通话&#xff0c;云端录制等这些基本功能&#xff0c;有些厂商支持本地服务录制。 2 本地服务录制&#xff0c;云端录制区别 两个录制区别在于&#xff0c;本地服务端录制的 SDK 要求部署在 …

免费浪漫网页制作网站自贡市网站建设

在为杂志装订机开发新产品的过程中&#xff0c;作为印刷后处理机械领域的全球领导者&#xff0c;Mller Martini AG公司发现了传感器故障的问题。通过使用虹科MSR 微型加速度数据记录仪&#xff0c;成功地确定了故障的原因。 新杂志装订机中的三刀修整装置的故障部件是边缘传感器…

网站建设 柳州好看的企业网站

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年道路运输企业安全生产管理人员证考试为正在备考道路运输企业安全生产管理人员操作证的学员准备的理论考试专题&#xff0c;每个月更新的道路运输企业安全生产管理人员模拟考试题祝您顺利通过道路运输企业安全生…

ppt做书模板下载网站有哪些内容短视频宣传片制作

Nacos是一个开源的、易于使用的平台&#xff0c;用于构建云原生应用和微服务架构。它提供了一系列关键功能&#xff0c;帮助开发者更高效地管理和协调微服务。 一、Nacos的功能 1. 服务发现&#xff1a;在微服务架构中&#xff0c;服务的网络位置是动态变化的。Nacos通过服务注…

旅游网站设计及开发网站的关键词和描述

在软件开发过程中&#xff0c;接口测试是非常重要的一环。它可以帮助我们确保系统的各个模块之间的交互是否正常&#xff0c;从而提高软件的质量和稳定性。本文将介绍如何使用Python编写一个自动化接口测试框架&#xff0c;包括框架对比、接口测试框架介绍、接口测试框架流程和…

青岛做视频的网站网站欢迎框代码

一、Cornerstone3D 是什么&#xff1f; Cornerstone3D官网&#xff1a;https://www.cornerstonejs.org/ 在线查看显示效果&#xff08;加载需时间&#xff0c;可先点击运行&#xff09;&#xff0c;欢迎fork 二、代码示例 了解了Cornerstone是什么&#xff0c;有什么作用后&…

怎样手机网站建设二手交易网站建设方案ppt

目录 requests是什么安装requests使用requestsGET方法POST方法 requests的相关函数 既然Python是一门全球流行的语言&#xff0c;那么对于网络通信的HTTP的支持肯定也是非常的优秀的。Python中原生的urllib模块也有对HTTP的支持&#xff0c;虽然也可以用来发送 HTTP 请求&#…