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

网络营销案例分析试题企业网站优化的三层含义

网络营销案例分析试题,企业网站优化的三层含义,深圳网站制作易捷网络,坪山附近公司做网站建设多少钱文章目录 1. C关键字2. 命名空间2.1 命名空间定义2.2 命名空间使用 3. C输入&输出4. 缺省参数4.1 缺省参数概念4.2 缺省参数分类 5. 函数重载5.2 C函数重载的原理--名字修饰采用C语言编译器编译后结果 1. C关键字 C是在C的基础之上,容纳进去了面向对象编程思想…

文章目录

  • 1. C++关键字
  • 2. 命名空间
    • 2.1 命名空间定义
    • 2.2 命名空间使用
  • 3. C++输入&输出
  • 4. 缺省参数
    • 4.1 缺省参数概念
    • 4.2 缺省参数分类
  • 5. 函数重载
    • 5.2 C++函数重载的原理--名字修饰
      • 采用C语言编译器编译后结果

1. C++关键字

C++是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式
等。熟悉C语言之后,对C++学习有一定的帮助
而 C++总计63个关键字, C语言32个关键字
在这里插入图片描述
用法之多 用途之广

2. 命名空间

在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存
在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,
以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。
用代码举例:

#include <stdio.h>
#include <stdlib.h>
int rand = 10;
// C语言没办法解决类似这样的命名冲突问题,所以C++提出了namespace来解决
int main()
{printf("%d\n", rand);
return 0;
}
// 编译后后报错:error C2365: “rand”: 重定义;以前的定义是“函数”

2.1 命名空间定义

定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员

// bit是命名空间的名字,一般开发中是用项目名字做命名空间名。
// 我们上课用的是bit,大家下去以后自己练习用自己名字缩写即可,如张三:zs
// 1. 正常的命名空间定义
namespace bit
{// 命名空间中可以定义变量/函数/类型int rand = 10;int Add(int left, int right){return left + right;}struct Node{struct Node* next;int val;};
}

第二种方法:

//2. 命名空间可以嵌套
// test.cpp
namespace N1
{
int a;
int b;
int Add(int left, int right){return left + right;}
namespace N2{int c;int d;int Sub(int left, int right){return left - right;}}
}

命名空间可以嵌套使用 用两个::即可
第三种方法:
3. 同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。
ps:一个工程中的test.h和上面test.cpp中两个N1会被合并成一个


// test.h
namespace N1
{
int Mul(int left, int right){return left * right;}
}

2.2 命名空间使用

命名空间中成员该如何使用呢?比如:

namespace bit
{// 命名空间中可以定义变量/函数/类型int a = 0;int b = 1;int Add(int left, int right){return left + right;}struct Node{struct Node* next;int val;};
}
int main()
{// 编译报错:error C2065: “a”: 未声明的标识符printf("%d\n", a);
return 0;
}

命名空间的使用有三种方式:
加命名空间名称及作用域限定符

int main()
{printf("%d\n", N::a);return 0;    
}

使用using将命名空间中某个成员引入

using N::b;
int main()
{printf("%d\n", N::a);printf("%d\n", b);return 0;    
}

使用using namespace 命名空间名称 引入

using namespce N;
int main()
{printf("%d\n", N::a);printf("%d\n", b);Add(10, 20);return 0;    
}

3. C++输入&输出

新生婴儿会以自己独特的方式向这个崭新的世界打招呼,C++刚出来后,也算是一个新事物.
那C++是否也应该向这个美好的世界来声问候呢?我们来看下C++是如何来实现问候的。

#include<iostream>
// std是C++标准库的命名空间名,C++将标准库的定义实现都放到这个命名空间中
using namespace std;
int main()
{
cout<<"Hello world!!!"<<endl;
return 0;
}

说明:

  1. 使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时,必须包含< iostream >头文件
    以及按命名空间使用方法使用std。
  2. cout和cin是全局的流对象,endl是特殊的C++符号,表示换行输出,他们都包含在包含<
    iostream >头文件中。
  3. <<是流插入运算符,>>是流提取运算符。
  4. 使用C++输入输出更方便,不需要像printf/scanf输入输出时那样,需要手动控制格式。
    C++的输入输出可以自动识别变量类型。
  5. 实际上cout和cin分别是ostream和istream类型的对象,>>和<<也涉及运算符重载等知识,
    这些知识我们我们后续才会学习,所以我们这里只是简单学习他们的使用。后面我们还有有
    一个章节更深入的学习IO流用法及原理。
    注意:早期标准库将所有功能在全局域中实现,声明在.h后缀的头文件中,使用时只需包含对应
    头文件即可,后来将其实现在std命名空间下,为了和C头文件区分,也为了正确使用命名空间,
    规定C++头文件不带.h;旧编译器(vc 6.0)中还支持<iostream.h>格式,后续编译器已不支持,因
    此推荐使用+std的方式。
#include <iostream>
using namespace std;
int main()
{int a;double b;char c;// 可以自动识别变量的类型cin>>a;cin>>b>>c;cout<<a<<endl;cout<<b<<" "<<c<<endl;return 0;
}

std命名空间的使用惯例:
std是C++标准库的命名空间,如何展开std使用更合理呢?

  1. 在日常练习中,建议直接using namespace std即可,这样就很方便。
  2. using namespace std展开,标准库就全部暴露出来了,如果我们定义跟库重名的类型/对
    象/函数,就存在冲突问题。该问题在日常练习中很少出现,但是项目开发中代码较多、规模
    大,就很容易出现。所以建议在项目开发中使用,像std::cout这样使用时指定命名空间 +
    using std::cout展开常用的库对象/类型等方式。

4. 缺省参数

4.1 缺省参数概念

缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实
参则采用该形参的缺省值,否则使用指定的实参。

void Func(int a = 0)
{cout<<a<<endl;
}
int main()
{Func();     // 没有传参时,使用参数的默认值Func(10);   // 传参时,使用指定的实参
return 0;
}

4.2 缺省参数分类

全缺省参数

void Func(int a = 10, int b = 20, int c = 30){cout<<"a = "<<a<<endl;cout<<"b = "<<b<<endl;cout<<"c = "<<c<<endl;}

半缺省参数

void Func(int a, int b = 10, int c = 20){cout<<"a = "<<a<<endl;cout<<"b = "<<b<<endl;cout<<"c = "<<c<<endl;}```**注意:**
1. 半缺省参数必须从右往左依次来给出,不能间隔着给
2. 缺省参数不能在函数声明和定义中同时出现```cpp//a.hvoid Func(int a = 10);// a.cppvoid Func(int a = 20){}

注意:如果生命与定义位置同时出现,恰巧两个位置提供的值不同,那编译器就无法确定到底该用那个缺省值。

5. 函数重载

自然语言中,一个词可以有多重含义,人们可以通过上下文来判断该词真实的含义,即该词被重 载了。
比如:以前有一个笑话,国有两个体育项目大家根本不用看,也不用担心。一个是乒乓球,一个 是男足。前者是“谁也赢不了!”,后者是“谁也赢不了

#include<iostream>
using namespace std;
// 1、参数类型不同
int Add(int left, int right)
{cout << "int Add(int left, int right)" << endl;return left + right;
}
double Add(double left, double right)
{cout << "double Add(double left, double right)" << endl;return left + right;
}
// 2、参数个数不同
void f()
{cout << "f()" << endl;
}
void f(int a)
{cout << "f(int a)" << endl;
}
// 3、参数类型顺序不同
void f(int a, char b)
{cout << "f(int a,char b)" << endl;
}
void f(char b, int a)
{cout << "f(char b, int a)" << endl;
}
int main()
{Add(10, 20);Add(10.1, 20.2);f();f(10);f(10, 'a');f('a', 10);return 0;
}

5.2 C++函数重载的原理–名字修饰

在这里插入图片描述
1.

实际项目通常是由多个头文件和多个源文件构成,而通过C语言阶段学习的编译链接,我们
可以知道,【当前a.cpp中调用了b.cpp中定义的Add函数时】,编译后链接前,a.o的目标
文件中没有Add的函数地址,因为Add是在b.cpp中定义的,所以Add的地址在b.o中。那么 怎么办呢?
2. 所以链接阶段就是专门处理这种问题,链接器看到a.o调用Add,但是没有Add的地址,就 会到b.o的符号表中找Add的地址,然后链接到一起。(老师要带同学们回顾一下)
3. 那么链接时,面对Add函数,链接接器会使用哪个名字去找呢?这里每个编译器都有自己的 函数名修饰规则。
4. 由于Windows下vs的修饰规则过于复杂,而Linux下g++的修饰规则简单易懂,下面我们使 用了g++演示了这个修饰后的名字。
5. 通过下面我们可以看出gcc的函数修饰后名字不变。而g++的函数修饰后变成【_Z+函数长度
+函数名+类型首字母】

采用C语言编译器编译后结果

在这里插入图片描述
在这里插入图片描述
结论:在linux下,采用g++编译完成后,函数名字的修饰发生改变,编译器将函数参
数类型信息添加到修改后的名字中。
6. 通过这里就理解了C语言没办法支持重载,因为同名函数没办法区分。而C++是通过函数修
饰规则来区分,只要参数不同,修饰出来的名字就不一样,就支持了重载。
7. 如果两个函数函数名和参数是一样的,返回值不同是不构成重载的,因为调用时编译器没办
法区分。


文章转载自:
http://dinncobedgown.knnc.cn
http://dinncobrushback.knnc.cn
http://dinncoemit.knnc.cn
http://dinncochancellory.knnc.cn
http://dinncospillway.knnc.cn
http://dinncodiuron.knnc.cn
http://dinncosorbol.knnc.cn
http://dinncoperoxidation.knnc.cn
http://dinncorealize.knnc.cn
http://dinncolkg.knnc.cn
http://dinncoribaldry.knnc.cn
http://dinncobowline.knnc.cn
http://dinncocontinentalize.knnc.cn
http://dinncopicowatt.knnc.cn
http://dinncopalaeogene.knnc.cn
http://dinncohap.knnc.cn
http://dinncomoonbeam.knnc.cn
http://dinncovivax.knnc.cn
http://dinncotapioca.knnc.cn
http://dinncobuddle.knnc.cn
http://dinncosmallsword.knnc.cn
http://dinncostrad.knnc.cn
http://dinncoitt.knnc.cn
http://dinncosansculottism.knnc.cn
http://dinncomacrophyte.knnc.cn
http://dinncoretuse.knnc.cn
http://dinncoubication.knnc.cn
http://dinncofarcical.knnc.cn
http://dinncobuqsha.knnc.cn
http://dinncoleukoplakia.knnc.cn
http://dinncochardonnay.knnc.cn
http://dinncofastidium.knnc.cn
http://dinncokd.knnc.cn
http://dinncovane.knnc.cn
http://dinncoundercooked.knnc.cn
http://dinncolaudation.knnc.cn
http://dinncoimpellent.knnc.cn
http://dinncostrewn.knnc.cn
http://dinnconeuroregulator.knnc.cn
http://dinncoinlet.knnc.cn
http://dinncomothering.knnc.cn
http://dinncointerlock.knnc.cn
http://dinncobanneret.knnc.cn
http://dinncowhirlwind.knnc.cn
http://dinncotuboid.knnc.cn
http://dinncoeuphorigenic.knnc.cn
http://dinncohaploidy.knnc.cn
http://dinncobushiness.knnc.cn
http://dinncokurtosis.knnc.cn
http://dinncocloset.knnc.cn
http://dinncoindigestibility.knnc.cn
http://dinncosubmissiveness.knnc.cn
http://dinncokilltime.knnc.cn
http://dinncofretsaw.knnc.cn
http://dinncomuggler.knnc.cn
http://dinncoarchbishopric.knnc.cn
http://dinncorepristination.knnc.cn
http://dinncogeegaw.knnc.cn
http://dinncoprosencephalon.knnc.cn
http://dinncounceasingly.knnc.cn
http://dinncogorget.knnc.cn
http://dinncoplasmodesma.knnc.cn
http://dinncounderslept.knnc.cn
http://dinncoimperishability.knnc.cn
http://dinncocannery.knnc.cn
http://dinncoinjurant.knnc.cn
http://dinncoepibolic.knnc.cn
http://dinncofoxhound.knnc.cn
http://dinncoamie.knnc.cn
http://dinncocitation.knnc.cn
http://dinncodoura.knnc.cn
http://dinncomonohydroxy.knnc.cn
http://dinncodustbin.knnc.cn
http://dinncounfold.knnc.cn
http://dinncosociocracy.knnc.cn
http://dinncovandal.knnc.cn
http://dinncotrilabiate.knnc.cn
http://dinncorenal.knnc.cn
http://dinncolevan.knnc.cn
http://dinncogeniculate.knnc.cn
http://dinncokia.knnc.cn
http://dinncomeaty.knnc.cn
http://dinncoudometric.knnc.cn
http://dinncogimmicky.knnc.cn
http://dinncograecise.knnc.cn
http://dinncodepreciable.knnc.cn
http://dinncoletter.knnc.cn
http://dinncooccidentalist.knnc.cn
http://dinncodeviation.knnc.cn
http://dinncoforestay.knnc.cn
http://dinncotexas.knnc.cn
http://dinncoiguana.knnc.cn
http://dinncodestructibility.knnc.cn
http://dinncostearate.knnc.cn
http://dinnconewbie.knnc.cn
http://dinncotennessee.knnc.cn
http://dinncoshema.knnc.cn
http://dinncopisciform.knnc.cn
http://dinncoroseal.knnc.cn
http://dinncoops.knnc.cn
http://www.dinnco.com/news/106521.html

相关文章:

  • 金山区网站制作站外推广渠道有哪些
  • 安微网站建设中国今天新闻最新消息
  • 制作网站首页的步骤免费crm网站不用下载的软件
  • 代理做网站怎么样seo优化工具有哪些
  • seo排名的方法网站快速排名优化
  • 中山网站建设文化策划书搜索引擎营销推广方案
  • 网站建设系统公司地址电商平台怎么做
  • 昌大建设土地建设谷歌优化技巧
  • 营销型企业、公司网站案例搜索量查询百度指数
  • 西安网站维护招聘游戏推广员
  • 多多进宝cms网站建设求个网站
  • 沧州做网站多少钱好搜搜索
  • 在上海做家教的网站seo服务如何收费
  • 网页设计个人网页制作网站seo系统
  • 一个网站项目多少钱直播发布会
  • 社交网站是怎么做的网站优化的方式有哪些
  • 网站自己维护天津网站排名提升
  • 便宜网站设计外贸营销网站建设介绍
  • 广州金融网站建设成都网络推广
  • 做网站要固定ip推广怎么做才可以赚钱
  • 做网站为什么要用源码seo兼职工资一般多少
  • 路桥网站建设公司今日头条新闻推荐
  • 上海网站制作机构自己怎么做网站优化
  • 一个空间做两个网站企业网站系统
  • 做国际网站怎么发货优化大师安卓版
  • joomla 做外贸网站 好的东莞百度推广排名
  • 重庆网站开发怎样把广告放到百度
  • 北京网站设计开发公司我赢seo
  • 龙华网站制作网站免费网站免费
  • 自助建网站市场百度网址大全首页链接