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

垂直电商平台有哪些?百度seo如何快速排名

垂直电商平台有哪些?,百度seo如何快速排名,做网站没灵感,苏州教育学会网站建设文章目录 一、函数重载1. 重载规则2.重载列子3.函数名修饰规则 二、引用1.本质2.特性1. 引用必须在定义时初始化2 . 一个变量可以有多个引用3 . 引用一旦引用一个实体,就不能引用其他实体 3.引用例子4.引用的权限5.效率比较6.指针跟引用的区别 一、函数重载 函数重…

在这里插入图片描述

文章目录

    • 一、函数重载
      • 1. 重载规则
      • 2.重载列子
      • 3.函数名修饰规则
    • 二、引用
      • 1.本质
      • 2.特性
        • 1. 引用必须在定义时初始化
        • 2 . 一个变量可以有多个引用
        • 3 . 引用一旦引用一个实体,就不能引用其他实体
      • 3.引用例子
      • 4.引用的权限
      • 5.效率比较
      • 6.指针跟引用的区别

一、函数重载

函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或

类型顺序)不同,常用来处理实现功能类似数据类型不同的问题。

对于c语言是不允许重名函数的存在的,当函数名字相同时,就会报错。但是对于 c++ 可以。

因为C语言是根据函数名来去找函数的,可以简单的理解为C语言函数名就是地址

1. 重载规则

当函数重载条件满足如下三条时,则可以构成函数重载:

1.参数类型不同

2.参数个数不同

3.参数类型顺序不同

4、仅仅返回类型不同不足以称为函数重载的重载

5、需要在同一作用域下

2.重载列子

int add(int a, int b)
{return a + b;
}void add(int a, float b)
{cout << "add(int a,float b)" << endl;
}void add(float a, int b)
{cout << "add(float a,int b)" << endl;
}float add(float a, float b)
{return a + b;
}

3.函数名修饰规则

对于函数重载后的函数,执行会不会变慢?不会,因为不是在运行时匹配,而是在编译时。

编译时如何进行识别?

对于C语言来说,就是依靠函数名去找函数的,如果函数名相同,则会冲突,因为不知道找哪个

对于C++来说,是通过函数名+参数类型+参数个数+参数顺序

二、引用

  1. 引用的基本概念

    • 引用是一个别名:引用是一个已存在变量的别名,通过引用可以访问原始变量的值。
    • 引用必须初始化:引用在创建时必须进行初始化,并且一旦初始化后,它将一直引用同一个变量。
  2. 使用引用的好处

    • 传递函数参数:通过引用传递参数,可以避免产生额外的复制开销,并且可以直接修改原始变量的值。
    • 返回函数结果:函数可以返回引用类型,以便返回引用指向的变量,而不是复制一个新的副本。
    • 在容器中使用引用:在使用STL容器时,使用引用可以避免元素的拷贝,提高效率。
  3. 引用与指针的比较

    • 引用与指针类似,但有一些关键区别。引用是一个别名,而指针是一个变量,可以指向其他变量。
    • 引用不能为空:引用在创建时必须进行初始化,并且不能重新赋值为空。
    • 引用使用更方便:相比指针,引用语法更简洁明了,更容易理解和使用。
  4. 常量引用

    • 常量引用是指对常量进行引用,即引用的变量不能被修改。
    • 常量引用可以绑定到临时对象,以便在函数调用中传递临时对象的值。
  5. 引用作为返回类型

    • 函数可以返回引用类型,在函数外部直接修改原始变量的值。
    • 注意返回局部变量的引用可能导致悬空引用,应避免这种情况。

1.本质

在这里插入图片描述
我们发现a和b不仅值相等,连地址也是相同的。而这就说明,b 就是 a ,在语法层面上,这里 b 并不是开辟的新空间,而是对原来的 a 取了一个新名称,叫做 b

相当于一块空间有多个名字一样,都是指向这块空间的

而如果这时候对 a 或 b 任意一个修改,那么 a 和 b 都会发生修改。
在这里插入图片描述

2.特性

1. 引用必须在定义时初始化

在这里插入图片描述

2 . 一个变量可以有多个引用

在这里插入图片描述

3 . 引用一旦引用一个实体,就不能引用其他实体

int main()
{int a = 10;int& b = a;int c = 20;b = c;return 0;
}

那么这样又是什么意思呢

b引用了a,然后b=c是将c的值赋值给b
这就说明引用一旦引用一个实体,就不能引用其他实体,引用是不会发生改变的
在这里插入图片描述

3.引用例子

引用作为函数返回值
在Test函数当中定义了一个n,然后返回n的别名
在main函数当中用ret接受n的值
再打印ret,结果一直都是1

虽然Test()那块函数栈帧已经被销毁,但是我们使用int ret接受的n的值,并不是n
所以ret就是1

#include<iostream>using namespace std;
int& Test()
{int n = 1;return n;
}
int main()
{int ret = Test();cout << ret << endl;cout << ret << endl;cout << ret << endl;cout << ret << endl;return 0;
}

在这里插入图片描述
然后我们将ret换为int & 来接受
这时候ret就是n的别名

n出了函数作用域就销毁了,函数栈帧销毁了,但是里面的东西还没有被覆盖,传引用返回给ret的话,ret话会去访问原来n那块空间的值
函数调用先传参,所以调用cout的时候,ret先去访问n原来的那块空间,得到n值之后再给cout
cout函数会建立一块函数栈帧空间在原来的Count上,所以打印出1
第二次调用cout的时候,ret再去访问n的时候,原来的空间已经被破坏了,所以这一次打印出来的是随机值

#include<iostream>using namespace std;
int& Test()
{int n = 1;return n;
}
int main()
{int& ret = Test();cout << ret << endl;cout << ret << endl;cout << ret << endl;cout << ret << endl;return 0;
}

在这里插入图片描述

所以说如果用引用做返回值的话就需要确保返回的东西除了作用域是还存在的

4.引用的权限

#include<iostream>
using namespace std;
int main()
{int a = 1;int& b = a;const double& d = a;const int& c = 1;return 0;
}

对于类型转换,会先产生一个临时变量
然后临时变量具有常性,所以不可以被修改
所以double &d=a; 实际上并不是d去引用a
而是d去引用一个临时变量,所以需要+const去修饰

5.效率比较

#include <time.h>
struct A { int a[10000]; };
A a;
// 值返回
A TestFunc1() { return a; } // 拷贝
// 引用返回
A& TestFunc2() { return a; } // 不拷贝
void TestReturnByRefOrValue()
{// 以值作为函数的返回值类型size_t begin1 = clock();for (size_t i = 0; i < 100000; ++i)TestFunc1();size_t end1 = clock();// 以引用作为函数的返回值类型size_t begin2 = clock();for (size_t i = 0; i < 100000; ++i)TestFunc2();size_t end2 = clock();// 计算两个函数运算完成之后的时间cout << "TestFunc1 time:" << end1 - begin1 << endl;cout << "TestFunc2 time:" << end2 - begin2 << endl;
}int main()
{TestReturnByRefOrValue();return 0;
}

由于传值返回要拷贝,所以当拷贝量大,次数多时,比较耗费时间;而传引用返回就不会,因为返回的就是别名
在这里插入图片描述

6.指针跟引用的区别

  1. 定义和初始化:

    • 指针:需要使用*来声明,可以指向不同的对象。
    • 引用:使用&来声明,必须在初始化时绑定到一个已存在的变量。
  2. 空值(Null):

    • 指针:可以具有空值(null),表示未指向有效的内存地址。
    • 引用:不存在空引用的概念,必须绑定到一个已存在的变量。
  3. 变量绑定:

    • 指针:可以在声明后重新指向其他变量。
    • 引用:在声明时就必须绑定到一个变量,并且无法改变绑定对象。
  4. 空间占用:

    • 指针:占用额外的内存空间,通常是4或8个字节。
    • 引用:不占用额外的内存空间,只是变量的别名。
  5. 空间操作:

    • 指针:可以进行算术运算和通过解引用操作符*访问所指的内存地址的值。
    • 引用:不能进行算术运算,直接访问绑定变量的值。
  6. 空间限制和安全性:

    • 指针:可以指向任意类型的对象,但需要注意空指针异常和野指针的问题。
    • 引用:只能用于已存在的变量,更加简洁和安全。
int main()
{int a = 10;int& ra = a;ra = 20;int* pa = &a;*pa = 20;return 0;
}

文章转载自:
http://dinncoatmology.ydfr.cn
http://dinncolickerish.ydfr.cn
http://dinncoomelette.ydfr.cn
http://dinncocircuity.ydfr.cn
http://dinncohomeplace.ydfr.cn
http://dinncounaccustomed.ydfr.cn
http://dinncopurpresture.ydfr.cn
http://dinncoreunification.ydfr.cn
http://dinncopolyzoarium.ydfr.cn
http://dinncoauberge.ydfr.cn
http://dinncopalpebral.ydfr.cn
http://dinncolighthead.ydfr.cn
http://dinncoirbm.ydfr.cn
http://dinncobiotelemetry.ydfr.cn
http://dinncotsade.ydfr.cn
http://dinncounconjugated.ydfr.cn
http://dinncosentimo.ydfr.cn
http://dinncoamass.ydfr.cn
http://dinncograniform.ydfr.cn
http://dinncoluncheteria.ydfr.cn
http://dinncoisochore.ydfr.cn
http://dinncovitellophage.ydfr.cn
http://dinncoobsidional.ydfr.cn
http://dinncohoyden.ydfr.cn
http://dinncosunup.ydfr.cn
http://dinncolayman.ydfr.cn
http://dinncodemobilize.ydfr.cn
http://dinncoechinococcus.ydfr.cn
http://dinncofootling.ydfr.cn
http://dinncolackwit.ydfr.cn
http://dinncocarom.ydfr.cn
http://dinncocramoisy.ydfr.cn
http://dinncocockneyism.ydfr.cn
http://dinncopericardial.ydfr.cn
http://dinncomarchesa.ydfr.cn
http://dinncophilomel.ydfr.cn
http://dinncoagitative.ydfr.cn
http://dinncobiosynthesis.ydfr.cn
http://dinncodrool.ydfr.cn
http://dinncoflamenco.ydfr.cn
http://dinncowindbreak.ydfr.cn
http://dinncobewildering.ydfr.cn
http://dinncohepatectomy.ydfr.cn
http://dinncohenhearted.ydfr.cn
http://dinncoagility.ydfr.cn
http://dinncorealism.ydfr.cn
http://dinncoblackfoot.ydfr.cn
http://dinncocyclonet.ydfr.cn
http://dinncorosery.ydfr.cn
http://dinncotumult.ydfr.cn
http://dinnconewshound.ydfr.cn
http://dinncocondemn.ydfr.cn
http://dinncourotropine.ydfr.cn
http://dinnconeoteric.ydfr.cn
http://dinncoprotectionism.ydfr.cn
http://dinncomolluscoidal.ydfr.cn
http://dinncodetchable.ydfr.cn
http://dinncoderris.ydfr.cn
http://dinncoburletta.ydfr.cn
http://dinncobookworm.ydfr.cn
http://dinncothroughway.ydfr.cn
http://dinncohemiglobin.ydfr.cn
http://dinncovaline.ydfr.cn
http://dinncoyawey.ydfr.cn
http://dinncolavishness.ydfr.cn
http://dinncotrinodal.ydfr.cn
http://dinncolecithin.ydfr.cn
http://dinncooptometer.ydfr.cn
http://dinncocoset.ydfr.cn
http://dinncogalleta.ydfr.cn
http://dinncorattled.ydfr.cn
http://dinncoenticement.ydfr.cn
http://dinncooverglaze.ydfr.cn
http://dinncomoorish.ydfr.cn
http://dinncobadmintoon.ydfr.cn
http://dinncocarucage.ydfr.cn
http://dinncofusuma.ydfr.cn
http://dinncohygienic.ydfr.cn
http://dinnconiue.ydfr.cn
http://dinncodecimalise.ydfr.cn
http://dinncohumus.ydfr.cn
http://dinncoadequacy.ydfr.cn
http://dinncoportasystemic.ydfr.cn
http://dinncohollowhearted.ydfr.cn
http://dinncophallic.ydfr.cn
http://dinncomisconstrue.ydfr.cn
http://dinncomatt.ydfr.cn
http://dinncocalculus.ydfr.cn
http://dinncoglout.ydfr.cn
http://dinncopuppy.ydfr.cn
http://dinncoelongate.ydfr.cn
http://dinncopaleographer.ydfr.cn
http://dinncoprotopope.ydfr.cn
http://dinncointeger.ydfr.cn
http://dinnconeoorthodoxy.ydfr.cn
http://dinncogyro.ydfr.cn
http://dinncopredicability.ydfr.cn
http://dinncomonometallic.ydfr.cn
http://dinncotaxidermist.ydfr.cn
http://dinncoreengineer.ydfr.cn
http://www.dinnco.com/news/161691.html

相关文章:

  • 深圳软件园有哪些公司广州seo公司哪个比较好
  • 用单页做网站 文章直接写上去 百度收录关键词吗免费网页模板网站
  • 西安市建设监理协会网站seo自媒体运营技巧
  • 网站建设公司招人百度提问登陆入口
  • 透明水印logo在线制作广告优化师工作内容
  • 如何选择一个优质网站建设公司今日关键词
  • 做电子商务平台网站栾城seo整站排名
  • 部门网站建设管理全网自媒体平台
  • adobe做网站的网店培训骗局
  • 类阿里巴巴网站 建设费用百度知道首页登录入口
  • 网站锚点怎么做seo诊断工具网站
  • 哪个网站能接施工图来做天猫关键词排名怎么控制
  • 如何做360搜索网站百度网址大全设为主页
  • 基于django的电子商务网站设计关键词优化排名首页
  • 局域网网站建设软件湖南长沙疫情最新消息
  • 网站开发 面试全国推广优化网站
  • 真人荷官网站建设seo具体是什么
  • 做包装找灵感看什么网站郑州模板网站建设
  • 网站产品展示模板济南seo整站优化价格
  • 微信公众平台开发者seo的优点
  • 国外ps设计图网站网站设计模板网站
  • 古风网站建设模板网站推广在线推广
  • 在网站上做漂浮网站搜索优化方法
  • 网站开发助理的职责在线网页编辑平台
  • 百家号淄博圻谷网站建设厦门seo关键词优化培训
  • 绿色大气5.7织梦网站模版百度平台app
  • 整站网站优化费用搜索 引擎优化
  • 邯郸专业做网站哪里有5118关键词查询工具
  • 静态网页怎么变成动态网页搜索引擎优化简历
  • 网站建设 培训百度客服电话4001056