C++入门篇(1)命名空间、输入输出函数、缺省参数

C++入门篇(1)命名空间、输入输出函数、缺省参数_第1张图片

目录

1.命名空间

在全局展开

指定命名空间访问

部分展开

2.C++输入&输出

3.缺省参数

3.1缺省参数的概念

3.2 缺省参数分类 

3.2.1全缺省参数

3.2.2半缺省参数(部分缺省参数)

3.2.3含缺省参数的函数声明和定义分离


1.命名空间

语言学习敲下的第一段代码,往往都是"hello world",不妨让我们用C++来对这个世界问好。

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

我们写的第一段代码就有可以讲的点——命名空间。

上面代码中的std就是一个命名空间。

命名空间可以限定里面变量的作用域,命名空间的使用如下

namespace a1
{
	struct a
	{
		int b;
	};
	int min = 1;
	int Add(int a, int b)
	{
		return a + b;
	}
}
namespace a2
{
	struct a
	{
		float b;
	};
	int min = 2;
	int Add(int a, int b)
	{
		return a + b;
	}
}

命名空间的对象可以是各种类型的变量,也包括函数,通过命名空间的限定,里面的成员范围限定在了这个命名空间内,这样外部就可以访问命名相同的对象。

在外部访问命名空间内的对象需要使用::操作符,比如打印hello world的代码可以写成

//标准输入输出流
#include
int main()
{
	std::cout << "hello world" << std::endl;
	return 0;
}

与上面代码不同之处在于这段代码的cout和endl是在main函数内部展开。这里就要介绍命名空间展开的三种方式

在全局展开

像第一段打印hello world的程序一样,展开在main函数外,这样整个全局都能使用该命名空间的对象,在实际项目中一般不推荐,这样可能会造成与库中对象命名相同的情况。

指定命名空间访问

如同第二段打印hello world程序,这种方式在每个要使用的对象前都要使用::操作符,总体来说比较麻烦。

部分展开

using std::cout;
using std::endl;
using std::cin;

 像这样把常用的对象展开,可以相对比较方便的使用,并且能减少重名的概率。

2.C++输入&输出

上面代码中的cout就是C++中的输出,可简单理解为将内容输出到控制台,使用需包含< iostream >头文件以及按命名空间使用方法使用std。

 cout和cin是全局的流对象,endl是特殊的C++符号,表示换行输出,他们都包含在包含头文件中。 <<是流插入运算符。

cout<<"hello world"<

这段代码可以理解为 "hello world"流向了控制台。

相对的还有cin用于输入

int a;
cin>>a;

相比于传统C语言的输入输出函数,C++提供的可以不指定类型,可自动识别。

3.缺省参数

3.1缺省参数的概念

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

void Func(int a = 0)
{
    cout<

3.2 缺省参数分类 

3.2.1全缺省参数

如函数

void f(int a = 1, int b = 2, int c = 3);
int main()
{
    f();
    return 0;
}

调用时可以一个参数都不传,也可以传一个参数,但是传参时需要注意,但是要注意,传一个或两个参数时要从左向右传,不能跳着传,也就是说

int main()
{
    f(1);
    return 0;
}

正确,而

int main()
{
    f(1,,3);
    return 0;
}

错误。

3.2.2半缺省参数(部分缺省参数)

使用函数半缺省参数时,形参赋值要从右向左赋值。

void f(int a, int b, int c = 3);
int main()
{
    f();
    return 0;
}

同样不能跳着赋值,这与上面对应。

3.2.3含缺省参数的函数声明和定义分离

若有函数声明,则缺省参数只能出现在函数声明中,不能出现在函数定义中。

void f(int a = 1, int b = 2);

void f(int a, int b)
{
    cout<

必须像这样,不能声明定义都出现缺省参数,只能有声明出现缺省参数。

你可能感兴趣的:(C++基础语法,c++,开发语言)