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

网站开发的软件环境有哪些网站推广策划书模板

网站开发的软件环境有哪些,网站推广策划书模板,珠海建设局网站首页,乐清在线网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/wzjs/279887.html

相关文章:

  • 香河做网站shijuewang电商推广联盟
  • 招聘网站怎么做介绍苏州首页排名关键词优化
  • 网站建设自己能做吗网站排名分析
  • 开发软件的网站百度免费安装
  • 网站建设如何增加流量自建站平台
  • 个人网站备案麻烦福州百度推广电话
  • 域名注册网站建设百度快速排名提升
  • 建设企业网站服务360推广登陆入口
  • 河北商城网站搭建多少钱湖北百度推广电话
  • 没有网站可以做域名解析吗站长号
  • 外面网站怎么做百度seo排名培训
  • ui设计培训排名磐石网站seo
  • 美食网站开发详细设计绍兴seo公司
  • 科网站建设如何优化关键词的排名
  • 怎样做免费的网站推广深圳优化公司哪家好
  • 我国基层政府网站建设情况东莞关键词优化软件
  • 网站诊断从哪里开始营销推广外包公司
  • 做网站卖赚钱吗安卓系统最好优化软件
  • 网站制作的主要流程百度识图软件
  • 机械网站建设中心seo是什么意思为什么要做seo
  • 建设银行网站理财产品为何不让买百度网址大全旧版安装
  • 用KEGG网站做KEGG富集分析微信指数查询入口
  • 海外 国内网站建设广州seo推广优化
  • 安徽元鼎建设公司网站软文广告经典案例100字
  • 杭州下沙网站建设免费推广平台有哪些
  • 唐山网站建设优化石家庄seo网站管理
  • 个人主题网站设计论文广告公司品牌营销推广
  • 大型网站开发成本北京百度推广官网首页
  • 西宁电商网站建设汽车网络营销推广方案
  • 杭州企业网站建设 哪里好合理使用说明