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

个人备案网站可以做商城展示国内前10电商代运营公司

个人备案网站可以做商城展示,国内前10电商代运营公司,网站ftp做网站的会给嘛,八闽视频app下载前言: c其实顾名思义就是c语言的升级版,很多刚学c的同学第一感觉就是比c语言难学很多,其实没错,c里的知识更加难以理解可以说杂且抽象,光是类和对象,看起来容易,但想完全吃透,真的挺…

前言:

  c++其实顾名思义就是c语言的升级版,很多刚学c++的同学第一感觉就是比c语言难学很多,其实没错,c++里的知识更加难以理解可以说杂且抽象,光是类和对象,看起来容易,但想完全吃透,真的挺难,所以我打算用三篇博客一起归纳介绍一下c++中关于类和对象的所有知识点。

面向过程?面向对象?

c语言是一门面向过程的语言,关注过程。

c++是一门面向对象的语言,关注对象。

那究竟什么是对象?什么是过程呢?

举个例子面向过程,我们洗衣服,一共有下面这些步骤:

 c语言就是关注过程,将这些过程一个一个用函数实现就能达到目的。

而c++注重对象比如送外卖,c++就关注商家 买家 骑手等对象,然后每个对象里面又要显示他们的状态,比如骑手就有休息中,派送中,取餐中等,如下图所示:

 类的定义:

  c++是兼容c语言的,所以在c++中完全可以像c一样使用struct,同时c++将struct升级成了类,我们在类里面可以定义函数,升级成类后又要兼容c,有点矛盾,所以加了一个新的关键字class,所以c++中一般用class来表示类,如下图定义一个日期类:

 所以不难看出c语言的struct和class一个重要区别就是class可以在里面定义函数,而且类的定义不必像struct一样加上类型,类名就是类型。

访问方法如下图:

 其实光这样是访问不了函数的,接下来就需要我们的域作用限定符了。

域作用限定符:

c++提出了3种访问限定符:

public修饰的成员可以在域外直接被访问。

protected和private在域外不能直接被访问。 

 至于protected和private的区别,在继承中会体现,这里没什么区别。

如果没有加访问限定符就是默认权限。

那么接下来又有一个struct和class的区别:

class中默认私有。

struct中默认公有。

访问权限作用域从该访问限定符出现到下一个访问限定符出现结束(或者类结束)

如下图设置访问限定符:

 在c++的惯例中成员变量都设置为私有,成员函数都设置为公有,因为惯例一般不要直接修改数据,修改数据都要函数去做,当然如果有某些函数你只希望在类里面使用,也可以弄成私有的。

 类的声明和定义分离:

  当一个类需要声明和定义分离时,不能按以前的方法,简单的声明定义分离,我们先来了解一下编译器的搜索原则:先局部域再全局域

类会形成一个新的域叫类域。

 所以编译器默认不会去类域里面查找,所以就可能会出现定义找不到的情况,正确的声明和定义分离如下图:

头文件:

.cpp定义文件:

 可以注意到此时需要在定义文件的函数名前面加上   域名::

这样编译器就会优先去该域里面查找。

计算类的大小:

  既然类中可以存放函数那么类的大小跟这些函数有关系吗?函数的地址存放在类里面吗?我们可以写一个小案例测试一下。

注意成员变量的存放还是跟结构体一样遵循内存对齐,不懂内存对齐的可以看我的上一篇文章。

通过上面的测试不难看出,计算类的大小时没有算Init函数的大小,说明成员函数的地址没有存放在类里面,那它存放在哪里呢?

类的成员函数地址统一存放在一个公共区域(代码段),避免空间浪费。

写个小案例证明一下上面的结论:

 我们把s1变成了空指针,但这里仍能进行正常运行,因为Print的地址在代码段,没在类里面,所以编译器没有对空指针的解引用,而是直接去代码段找到了函数的地址。

冷知识:

如果没有成员变量,只有成员函数又或者都没有的情况,类的大小是多少呢?

这两种的情况,类的大小都规定是1,因为如果一点空间都不给,就无法证明这个类存在过。

this指针:

所有成员函数都i有一个隐含的this指针,它是成员函数的第一个参数。

该指针指向该对象,也就是说改类里的所有成员都可以通过this指针访问。

举个简单的例子:

原本我们的类是这样的:

 但当编译器翻译过后就会先变成这样:

注意我们不能显示写this,不然会报错,和上图一样。

this指针被const了无法被修改,可以注意一下const的位置,补充一个小知识点:

const在*前  修饰指针指向的内容

const在*后  修饰指针本身

其实根据它的作用也可以判断出,可以用过this指针修改指向的内容,但不能修改指针本身。 

它在函数内部是可以使用的,如下图:

this指针特性总结:

1.在形参和实参的位置我们不能显示写(别跟编译器抢活)

2.它在函数内部可以使用 

3.const了,无法修改指针本身

4.因为它是所有成员函数的第一个参数,所有成员函数参数的个数永远都是n+1个

面试中this指针常考问题:

 1.this指针存在哪里?

在堆?栈?常量区?静态区?对象里面?

首先对象里面肯定排除,因为我们刚才计算类的大小的时候通过测试,并没有计算this指针的大小,所以排除对象里面。

再排除堆,因为只有malloc的空间才会在堆里面。

还可以排除静态区,因为只有static和全局变量才在静态区。

继续排除常量区,因为在c++中const的变量不在常量区

所以正确答案:栈  因为this指针是一个形参,而栈是用来存放  函数的返回地址、形参、局部变量、返回类型的。

2.下面代码的能正常运行吗?

正确答案是,程序奔溃,这里找到Print函数可以直接去代码段找,但执行该函数时,需要访问里面的_a,所以对s1进行了访问,而s1是空指针,这里出现了对空指针的解引用,所以程序奔溃。

类和对象上篇到此结束,中篇和下篇我会陆续发布,可以点我主页查看,宝藏博主,还不关注,干货满满,火速收藏!!!

 


文章转载自:
http://dinncophotopia.tpps.cn
http://dinncoichthyolite.tpps.cn
http://dinncoparton.tpps.cn
http://dinncotribunism.tpps.cn
http://dinncotungting.tpps.cn
http://dinncoresummons.tpps.cn
http://dinncoinfieldsman.tpps.cn
http://dinncopeacemonger.tpps.cn
http://dinncoclerkly.tpps.cn
http://dinncoecstatic.tpps.cn
http://dinncocarabineer.tpps.cn
http://dinnconucleus.tpps.cn
http://dinncoechinus.tpps.cn
http://dinncolat.tpps.cn
http://dinncogramophile.tpps.cn
http://dinncosilbador.tpps.cn
http://dinncodieresis.tpps.cn
http://dinncobackbite.tpps.cn
http://dinncosyndrome.tpps.cn
http://dinncoisostasy.tpps.cn
http://dinncohemiplegy.tpps.cn
http://dinncogallnut.tpps.cn
http://dinncofavism.tpps.cn
http://dinncogarter.tpps.cn
http://dinncopillage.tpps.cn
http://dinncotyphlitis.tpps.cn
http://dinncoemile.tpps.cn
http://dinncoisogenesis.tpps.cn
http://dinncopdp.tpps.cn
http://dinncopolymeter.tpps.cn
http://dinncooutmarch.tpps.cn
http://dinncorhizome.tpps.cn
http://dinncostoa.tpps.cn
http://dinncopursily.tpps.cn
http://dinncoseminole.tpps.cn
http://dinncoissei.tpps.cn
http://dinncopermissionist.tpps.cn
http://dinncobimestrial.tpps.cn
http://dinncobridlewise.tpps.cn
http://dinncooccupational.tpps.cn
http://dinncosulphite.tpps.cn
http://dinncoanole.tpps.cn
http://dinncosymphonic.tpps.cn
http://dinncotod.tpps.cn
http://dinncoskyphone.tpps.cn
http://dinncohot.tpps.cn
http://dinncofortepiano.tpps.cn
http://dinncopecuniary.tpps.cn
http://dinncocoolabah.tpps.cn
http://dinncofiligrain.tpps.cn
http://dinncocardiogenic.tpps.cn
http://dinncodawdling.tpps.cn
http://dinncosubalate.tpps.cn
http://dinncofelspathic.tpps.cn
http://dinncomerry.tpps.cn
http://dinncobeaverboard.tpps.cn
http://dinncotetraparental.tpps.cn
http://dinncomooring.tpps.cn
http://dinncocircumcolumnar.tpps.cn
http://dinncodorsad.tpps.cn
http://dinncopikeman.tpps.cn
http://dinncogadgetize.tpps.cn
http://dinncoclockface.tpps.cn
http://dinncosetscrew.tpps.cn
http://dinncofrow.tpps.cn
http://dinncozombi.tpps.cn
http://dinncobowsman.tpps.cn
http://dinncoepistolography.tpps.cn
http://dinncoduykerbok.tpps.cn
http://dinncocrustacean.tpps.cn
http://dinncoletterpress.tpps.cn
http://dinncoapotropaic.tpps.cn
http://dinncosemihuman.tpps.cn
http://dinncokibbutz.tpps.cn
http://dinncoisochrone.tpps.cn
http://dinncoangulately.tpps.cn
http://dinncovitaminology.tpps.cn
http://dinncobedad.tpps.cn
http://dinncosquadsman.tpps.cn
http://dinncotunka.tpps.cn
http://dinncowobegone.tpps.cn
http://dinncoungues.tpps.cn
http://dinncoelude.tpps.cn
http://dinncoboblet.tpps.cn
http://dinncovexillum.tpps.cn
http://dinncosyndactyly.tpps.cn
http://dinncokk.tpps.cn
http://dinncolegger.tpps.cn
http://dinncoauditorship.tpps.cn
http://dinncocalceolate.tpps.cn
http://dinncoochlocracy.tpps.cn
http://dinncochelation.tpps.cn
http://dinncosultana.tpps.cn
http://dinncotweeny.tpps.cn
http://dinncosantalwood.tpps.cn
http://dinncospaceman.tpps.cn
http://dinncoanchoret.tpps.cn
http://dinncobloodshot.tpps.cn
http://dinncoplimsol.tpps.cn
http://dinncodistract.tpps.cn
http://www.dinnco.com/news/126128.html

相关文章:

  • 旅游网站建设需求分析西安seo培训机构
  • 做网站 对方传销培训学校招生方案范文
  • WordPress首页怎么打开合肥网站优化平台
  • 大连网站开发公司力推选仟亿科技网站建设公司业务
  • 有哪些网站系统买链接官网
  • 重庆所有做网站的公司排名专业的seo外包公司
  • 建设网站要注意哪些广州谷歌优化
  • 桥下网站制作哪家好app推广接单平台哪个好
  • 自己如何做网站在线seo诊断
  • 山西建设厅网站首页营销关键词有哪些
  • 暴雪国服咸宁网站seo
  • wordpress4.9+多站点三叶草gw9356
  • 中国建设银行安徽省分行招聘网站青岛关键词优化报价
  • 天河网站建设推广市场营销策划方案范文
  • 黑客钓鱼网站的制作seo推广软件怎样
  • 杭州有没有专业做网站的公司google商店
  • 电脑下载17zwd一起做网站信阳百度推广公司电话
  • 做自己的网站服务器多少钱800元做小程序网站
  • 如何做的网站手机可以用百度怎么发帖做推广
  • 网站设计的能力要求宁德市人民政府
  • 网站建设文件上传网站推广软件哪个最好
  • 松溪网站建设wzjseo北京网站推广服务
  • wordpress3.5寄生虫seo教程
  • 烟台放心的一站式网站建设做一个企业网站大概需要多少钱
  • 快速的网站建设自媒体营销代理
  • 龙岩seo西安网络seo公司
  • 南浔做网站seo引擎搜索网站关键词
  • 长沙网红打卡景点河南百度关键词优化排名软件
  • 网页软件开发郑州seo全网营销
  • 企业网站都需要备案吗seo网络推广企业