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

成都网站建设制作吉林省水土保持生态建设网站

成都网站建设制作,吉林省水土保持生态建设网站,制作网站首页,建立公司网站需要什么文章目录命名空间C输入与输出缺省参数函数重载命名空间 在C/C中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标 识符的名称进行本地化&#xff0…

文章目录

  • 命名空间
  • C++输入与输出
  • 缺省参数
  • 函数重载

命名空间

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

#include<stdio.h>
#include<stdlib.h>int rand = 0;
int main()
{printf("%d\n",rand);return 0;
}

这也证明了C语言并不能避免重定义这类问题,所以接下来我们要解决的事情就是重命名问题。
这里是引用

解决重命名问题有三种方法

  • 1.指定命名空间访问
  • 2.常用部分展开
  • 3.全局展来(并不常用)

指定命名空间访问
这类方法会在以后的实际开发的项目工程种经常使用,但是并不方便日常练习。

#include<stdio.h>
#include<stdlib.h>
#include"zzm1.h"int a = 0;
int main()
{int a = 5;printf("%d\n",a);//5printf("%d\n",::a);//0printf("%d\n",Azzm::a);//10return 0;
}
//头文件zzm1.h
namespace Azzm
{int a = 10;
}
  • 定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。命名空间是可以嵌套的,当两个命名空间的名称是一样的编译器会认为将两个命名空间合并成为一个。

  • 命名空间中可以定义变量/函数/类型

  • 从上面的代码中可以看出,查找a的信息是从函数内开始找的,没有找到再去全局中查找。::(作用域限定符)就是指定空间查找的,当::的前面没有东西,或者为空格时,意思就是指定的空间为全局,在::的前面加上Azzm就是去该名字的命名空间去查找。

-------------------------------------------------------------------------------------------------------------

常用部分展开
该方法在以后的实际开发项目当中也会经常的使用,但是并不适合平时的练习。

#include<iostream>
//using namespace std;
using std::cout;
using std::endl;int main()
{int a = 0;cout<<a<<endl;cout << "hello world" << endl;cout << 'c' << endl;return 0;
}

部分展开可见上面的代码已经方便多了,

-----------------------------------------------------------------------------------------------------------

全局展开
该方法经常使用于平时的练习,非常的便利,但是并不适合实际开发当中的项目。

#include<iostream>
using namespace std;
//using std::cout;
//using std::endl;int main()
{int a = 0;cout<<a<<endl;cout << "hello world" << endl;cout << 'c' << endl;return 0;
}

全局的展开,同样也带来了命名与函数名的冲突问题,有利也有弊。
一般情况下是不建议全局展开的。

C++输入与输出

  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 n=0;cin >> n;double arr[5];for (int i = 0; i < n; i++){cin >> arr[i];}for (int i = 0; i < n; i++){cout << arr[i] << endl;//endl='\n'}return 0;
}

使用coutcin的好处是它可以自动识别类型,方便了很多。当需要控制浮点数精度的时候,可以继续使用printf和scanf,相对于这两个控制精度更加的简便(c++是兼容c的)。所以在我们使用时,那种更方便就是用那种,都是取决于自己。

缺省参数

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

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

缺省参数分类

  • 全缺省参数
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. 缺省参数不能在函数声明和定义中同时出现(在声明当中出现)
//test.cpp
#include"test.h"
int main()
{Func(1);return 0;
}
//test.h
#include<iostream>
using std::cout;
using std::endl;void Func(int a = 10, int b = 20, int c = 30);//注意
//zzm.cpp
#include"test.h"void Func(int a , int b, int c )//注意
{cout << "a = " << a << endl;//1cout << "b = " << b << endl;//20cout << "c = " << c << endl;//30
}
  1. 缺省值必须是常量或者全局变量
  2. C语言不支持(编译器不支持)

函数重载

函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这
些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同,常用来处理实现功能类似数据类型不同的问题。
形成函数重载有三种不同的条件,符合其一就可以实现函数重载。

  • 参数类型不同
  • 参数个数不同
  • 参数顺序不同

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;
}

在这里简单介绍一下c和c++分别的识别函数的方法,c是直接就通过函数名来识别,所以c也就不能出现相同的函数名在统一作用域。而c++是通过函数名和参数来识别函数的,所以也就可以实现相同的函数名,返回类型并不能作为识别函数的方法。

最后:文章有什么不对的地方或者有什么更好的写法欢迎大家在评论区指出

文章转载自:

http://P9OFgeT8.jjnry.cn
http://WMA6Qflq.jjnry.cn
http://NRMXVCpQ.jjnry.cn
http://frvDZuQu.jjnry.cn
http://KtOb5bdU.jjnry.cn
http://b5j90Zud.jjnry.cn
http://XVWFpfwD.jjnry.cn
http://q2p5pSKv.jjnry.cn
http://UDNwsv85.jjnry.cn
http://zqGm2dJF.jjnry.cn
http://mgUxczk4.jjnry.cn
http://JGowjMG1.jjnry.cn
http://4MwWuy29.jjnry.cn
http://sNv7oy9a.jjnry.cn
http://27PV8fIU.jjnry.cn
http://jMYaT3LF.jjnry.cn
http://63PttMaN.jjnry.cn
http://T7uCDyg8.jjnry.cn
http://4DajsaLW.jjnry.cn
http://Ze78ysjH.jjnry.cn
http://BCFFMXs2.jjnry.cn
http://MiME3b2L.jjnry.cn
http://iG1IG2XC.jjnry.cn
http://cWXgliUk.jjnry.cn
http://ESTWwqeU.jjnry.cn
http://od9GNvW9.jjnry.cn
http://qBWKYQ7w.jjnry.cn
http://K0OrQS7T.jjnry.cn
http://SwHNEiWX.jjnry.cn
http://5NBZPKPX.jjnry.cn
http://www.dtcms.com/wzjs/729402.html

相关文章:

  • 买网站做seowordpress转换tpecho
  • 易语言编程软件做网站万州网站制作公司
  • 手机可以建网站嘛建站好吗山东省建设管理局网站
  • 做网站要注意的网页设计ppt模板
  • 图解asp.net网站开发实战做网站什么配置够用
  • 响应式网站内容布局今天有哪些新闻
  • 网站怎么做微信接口html成品网站
  • 网站开发人员 工资收废铁的做网站有优点吗
  • 大专网站建设资料企业网页开发
  • xp系统做局域网内网站西安电商网站开发
  • 个人建设电影网站备案深圳市手机网站建设报价
  • 包头做网站的公司招聘信息为什么都用dw做网站
  • 网站建设维护教程凉山州建设局网站
  • 国内外c2c网站有哪些a5wordpress主题
  • 如何申请国外网站做网站在自己电脑建立虚拟机
  • 自学做网站要多久网站开发的关键技术与难点
  • 网站收录引擎虚拟主机可以建设网站吗
  • 手机网站用什么制作新手做网站的注意事项
  • 水贝做网站公司做网站图片尺寸
  • 腾讯做网站建筑企业平台
  • 网站开发税率是多少手机免费网站
  • 铜陵电子商务网站建设公司网站建设费用记什么科目
  • 上海工商网站查询企业信息网线制作过程简述
  • 淄博网站建设电话怎么改版网站
  • 公司管理系统网站模板下载网站开发前景与趋势如何
  • 电子商务网站建设管理答案成都网站制作设计公司
  • 汕头模板开发建站网站班级文化建设方案
  • 新闻资讯网站备案做网站费用会计分录
  • 大连唐朝网站优化公司三网合一网站建设方案
  • 天津技术网站建设中国建设承包商网站