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

服务器网站打开慢建设银行人才招聘官方网站

服务器网站打开慢,建设银行人才招聘官方网站,低功耗集成主板做网站,企业自己建网站怎么建1. 面向对象编程与面向过程编程的比较 我们一开始接触的C语言就是一门面向过程编程的语言,而C就是一门面向对象编程的语言。那么这两者有什么区别呢? 举个例子,就比如说点外卖,如果是C语言的话,那么在程序的编写过程…

1. 面向对象编程与面向过程编程的比较

我们一开始接触的C语言就是一门面向过程编程的语言,而C++就是一门面向对象编程的语言。那么这两者有什么区别呢?

举个例子,就比如说点外卖,如果是C语言的话,那么在程序的编写过程中更加注意于用户点外卖,商家接外卖,骑手送外卖。通过实现这几个过程来实现整个流程。但是如果说是C++的话,那么我们就会更加的看中用户,商家,骑手这三个类,即通过完善类来实现类与类之间的交互从而来实现整个流程。

2. 类的定义

class vector
{
public:........
private:.........
};​

这就是一个类的定义。当然,我们也可以把这个class换成struct。

我们不止可以在里面写上成员变量,我们更可以在里面写上函数(叫做成员函数),一般来说我们会把函数头和函数实现写在一起,因为更方便。

PS:C++里面更喜欢写成class。

class student
{
public:void getInformation(){cout<<_name<<endl;cout<<_age<<endl;cout<<_class<<endl;}private:int _age;string _name;string _class;
}

PS:感觉上面那个例子不够明显,就在举了一个。

3. 类的访问限定符及封装

3.1 访问限定符

如图所示,访问限定符包含了这三类,分别为public,protect和private。

1. public修饰的成员在类外可以直接被访问

2. protectedprivate修饰的成员在类外不能直接被访问(此处protectedprivate是类似的)

3. 访问权限作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止

4. 如果后面没有访问限定符,作用域就到 } 即类结束。

5. class的默认访问权限为privatestructpublic(因为struct要兼容C)

PS:class和struct的区别是struct定义的类默认访问权限是publicclass定义的类默认访问权限是private

3.2 封装

封装,继承多态是C++语法上的三大特性,我们在这里就来介绍一下封装。

什么叫封装呢?封装本质上是一种管理,让用户更方便使用类。比如:对于电脑这样一个复杂的设备,提供给用户的就只有开关机键、通过键盘输入,显示器,USB插孔等,让用户和计算机进行交互,完成日常事务。但实际上电脑真正工作的却是CPU、显卡、内存等一些硬件元件。

class student
{
public:void getInformation(){cout<<_name<<endl;cout<<_age<<endl;cout<<_class<<endl;}private:int _age;string _name;string _class;
}

比如说在这个代码中,一个学生的年龄,名字和班级,我并不希望查询的人可以随意的访问并修改。所以我在这里把他设置为private,我只希望别人可以查看信息,所以我写了一个函数来允许别人通过这个函数来进行查看。

4. 类的作用域

一个类定义了一个新的作用域 ,类的所有成员都在类的作用域中 在类体外定义成员时,需要使用 :: 作用域操作符指明成员属于哪个类域。
class student
{
public:void getInformation()   private:int _age;string _name;string _class;
}
void student::getInformation()
{cout<<_name<<endl;cout<<_age<<endl;cout<<_class<<endl;
}

我们看,在这里就是通过在getInformation前面加上一个student::来表示这个函数是属于这个student类。

5. 类的实例化

用类创建对象的过程,称为类的实例化。
因为类实际上我们可以理解为图纸,在没有把类实例化前是无法使用这个类的。
一个类可以实例化出多个对象, 实例化出的对象 占用实际的物理空间,存储类成员变量。
class student
{
public:void getInformation(){cout<<_name<<endl;cout<<_age<<endl;cout<<_class<<endl;}private:int _age;string _name;string _class;
}

比如说在这个代码里面,student是无法直接使用的,要把它实例化成一个个学生的信息我们才可以通过getInformation()进行调用。

PS:一个类可以实例化多份对象。

5.1 类实例化后大小的计算

一个类的大小,实际就是该类中”成员变量”之和,当然要注意内存对齐。
注意空类的大小,空类比较特殊,编译器给了空类一个字节来唯一标识这个类的对象。

我们在这里要引入一个概念,叫做结构体内存对齐规则

1. 第一个成员在与结构体偏移量为0的地址处。

2. 其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处。

注意:对齐数 = 编译器默认的一个对齐数 与 该成员大小的较小值。

VS中默认的对齐数为8

3. 结构体总大小为:最大对齐数(所有变量类型最大者与默认对齐参数取最小)的整数倍。

4. 如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整

体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。

PS:之所以计算机没有直接堆着放是为了提高编译速度。想想看对齐了的话编译器就只要那几个位置就好,通过这种方式可以大大的提高编译速度。

6. this指针

6.1 什么是this指针

class student
{
public:void student(string name,int age,string class){    _name=name;_age=age;_class=class}void getInformation(){cout<<_name<<endl;cout<<_age<<endl;cout<<_class<<endl;}private:int _age;string _name;string _class;
}int main()
{student s1("小明",18,"一班");student s2("小红",19,"二班");s1.getInformation();s2.getInformation();return 0;
}

我们来看这个代码,相信很多人都可以看懂这份代码。那么我们有没有想过,在这份代码里面为什么 getInformation()可以识别s1和s2并对它们做出区分呢。

这里我们就要增加一个概念叫做this指针,这是一个并不用我们去写就会自己存在的一个指针,并且它的指向已经固定了。举个例子,我们在void student(string name,int age,string class)这个函数里面_name=name实际上是this._name=name,age和class也是同样的道理。所以,当我们调用s1的getInformation()的时候,编译器会自动访问s1里面的那个this指针。通过这样的方式来实现s1和s2的区分。

6.2 this指针的特性

1. this 指针的类型:类型 * const ,即成员函数中, 不能给this指针赋值
2. 只能在 成员函数 的内部使用
3. this 指针本质上是 成员函数 的形参 ,当对象调用成员函数时,将对象地址作为实参传递给this形参。所以 对象中不存储 this 指针
4. this 指针是 成员函数 第一个隐含的指针形参,一般情况由编译器通过 ecx 寄存器自动传
递,不需要用户调用

6.3 this指针本身的位置

this指针本身的存储位置并非固定的,如果说一个类的参数比较少的话那么系统或者说编译器就会把this指针存放在寄存器上,如果说类的参数比较多的话,那么会被放在栈上。

那么为什么shis要先寄存器在栈呢,这是因为寄存器传递速度快。

PS:99%的情况下this本身是存在栈上的。

http://www.dtcms.com/a/530070.html

相关文章:

  • 网页设计制作网站html代码杭州网络科技公司排名
  • 上传到网站的根目录中四川成都旅游必去十大景点推荐
  • 宝塔建设网站上海的网站开发公司电话
  • 怎么看网站是否织梦门户网站建设滞后
  • 深喉咙企业网站官方网站建设需求规格说明书
  • 做相亲网站犯法吗vs2015做网站的后端
  • 新源网站建设手机网站模板源码
  • Linux中文件路径解析函数path_walk的实现
  • 群辉wordpress东莞市网络优化推广服务机构
  • 网站建设的安全威胁wordpress customize.php
  • 学做快餐的视频网站传奇网页版游戏开服表
  • 镇江网站搜索排名云主机网站如何备份
  • 学校网站设计及代码国内最好的摄影网站
  • 公文写作网站公司宣传册设计模板
  • 民权做网站哪家好wordpress ip_hash失效
  • 计算机网络自顶向下方法2——网络、ISP连接结构介绍
  • 速卖通网站怎样做店面的二维码百度网站广告怎么做
  • 【笔记】修复 ComfyUI 启动报错 KeyError: ‘luts‘ 和 KeyError: ‘tensorrt‘
  • 建设网站应注意什么网站制作公司美股上市
  • 网站源码怎么下载网站建设课程设计报告php
  • 为什么电脑打开那个做网站都是那一个信息系统管理工程师
  • 【右值引用完美转发】右值引用与完美转发的“天罡北斗阵”
  • 链表-循环双向链表【node4】
  • 襄阳网站建设找下拉哥科技sem seo是什么意思呢
  • 移动端网站建设的软件有哪些建设银行投诉网站首页
  • 乌鲁木做兼职的网站三合一网站建设方案
  • 西安装修公司网站制作做一个网站赚钱吗
  • 公司网站建设技术企业品牌推广策划
  • 汽车电子运用目的,如何学习simulink?
  • Vue3 组件挂载流程(源码解读)