博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++命名空间 ,输入与输出 ,缺省参数
阅读量:4117 次
发布时间:2019-05-25

本文共 2589 字,大约阅读时间需要 8 分钟。

作为c++入门学习应该掌握这几个概念:

 一,c++命名空间

C++中采用单一的全局变量命名空间,在这单一的空间中,如果有两个变量或函数的名字完全相同,就会出现冲突。命名空间是为了解决C++中的变量、函数的命名冲突而引入的一种机制,主要思路是将变量定义在不同名字的命名空间中。

命名空间的定义

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

namespace N1  //N1为命名空间的名字{//{}内就是命名空间的成员	int a; 	int add(int left, int right)	{		return left + right;	}}

 

  • 命名空间中的内容,既可以定义变量,也可以定义函数
  • 命名空间可以嵌套
  • 同一个工程中允许存在多个相同名称的命名空间 ,编译器最后会合成同一个命名空间中。

注意:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。

命名空间的使用:

1.加命名空间名称及作用域限定符

2.使用using将命令空间中成员引入

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

注意using指令的作用域。using namespace 只在其被声明的语句块内有效(语句块指在一对花括号{}内的一组指令)。

int main(){	{  //块1		using namespace name_1; 		name_1::print();  //调用name_1空间中的print()	} 		{   //块2		using namespace name_2; 		name_2::print();  //调用name_2空间中的print()	} 		return 0;}

二.C++输入&输出

C++ 标准库提供了一组丰富的输入/输出功能,C++ 的 I/O 发生在流中,流是字节序列。如果字节流是从设备(如键盘、磁盘驱动器、网络连接等)流向内存,这叫做输入操作。如果字节流是从内存流向设备(如显示屏、打印机、磁盘驱动器、网络连接等),这叫做输出操作

标准输出流(cout)[相当于c中printf]

预定义的对象 cout 是 iostream 类的一个实例。cout 对象"连接"到标准输出设备,通常是显示屏。cout 是与流插入运算符 << 结合使用的。

C++ 编译器根据要输出变量的数据类型,选择合适的流插入运算符来显示值。<< 运算符被重载来输出内置类型(整型、浮点型、double 型、字符串和指针)的数据项。

流插入运算符 << 在一个语句中可以多次使用,如下面实例中所示,endl 用于在行末添加一个换行符。

标准输入流(cin)[相当于c中的scanf]

预定义的对象 cin 是 iostream 类的一个实例。cin 对象附属到标准输入设备,通常是键盘。cin 是与流提取运算符 >> 结合使用的。

//使用cout输出和cin输入时,必须包含< iostream >头文件#include
#include
using namespace std;//std标准命名空间,cout和cin包含在std标准命名空间中,使用时必须包含该命名空间int main(){ int a; int b; char c; cin >> a; cin >> b >> c;//输入 cout << a << endl;//输出 cout << b << " " << c << endl; system("pause"); return 0;}

说明:C++使用cout进行输出(到控制台),使用cin进行输入(来源自控制台),C的方式可继续使用;

.          使用C++输入输出更方便,不需增加数据格式控制,比如:整形--%d,字符--%。

三.c++缺省参数

缺省参数概念

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

缺省参数分类

  • 全缺省参数(不传递任何参数)
#include
#include
using namespace std;int add(int left=12, int right=15){ return left + right;}int main(){ int ret=add();//没有传参时使用默认值 cout << ret << endl;//27 system("pause"); return 0;}
  • 半缺省参数
int add(int left=12, int right=15){		return left + right;}int main(){	int ret=add(10);//25,left=10,right=15;右边缺省。	//int ret = add(10,20);//30	cout << ret << endl;	system("pause");	return 0;}

注意:

  • 1. 半缺省参数必须从右往左依次来提供,不能间隔着给出
//eg:int fun(int i,int j=5,int k);//错误,k未使用
  • 2. 缺省参数不能同时在函数声明和定义中出现

当声明与定义分离时,只能在声明中出现,如下示例:

//text.h,在声明中出现缺省int Add(int a , int b = 10);//text.cppint Add(int a , int b){ return a+b;}

当声明与定义一体时,在定义中出现

//只有text.cppint Add(int a , int b = 10){ return a+b;}
  • 3. 缺省值必须是常量或者全局变量
  • 4. C语言不支持(编译器不支持) 
void fun(); //C语言中: 表示可以接受任意多个参数 所以一般写成void fun(void)                    //C++语言当中:表示不接受任的参数.(没有参数,编译器会报错)

C++对于函数参数检测更加严格,如何函数没有参数则不能接受任何参数 

你可能感兴趣的文章
postgresql监控工具pgstatspack的安装及使用
查看>>
【JAVA数据结构】双向链表
查看>>
【JAVA数据结构】先进先出队列
查看>>
乘法逆元
查看>>
Objective-C 基础入门(一)
查看>>
Flutter Boost的router管理
查看>>
iOS开发支付集成之微信支付
查看>>
C++模板
查看>>
【C#】如何实现一个迭代器
查看>>
【C#】利用Conditional属性完成编译忽略
查看>>
DirectX11 光照演示示例Demo
查看>>
VUe+webpack构建单页router应用(一)
查看>>
Node.js-模块和包
查看>>
(python版)《剑指Offer》JZ01:二维数组中的查找
查看>>
Spring MVC中使用Thymeleaf模板引擎
查看>>
PHP 7 的五大新特性
查看>>
深入了解php底层机制
查看>>
PHP中的stdClass 【转】
查看>>
XHProf-php轻量级的性能分析工具
查看>>
OpenCV gpu模块样例注释:video_reader.cpp
查看>>