C++入门(上)

今日名言:

因做过的事引起的后悔会被时间慢慢抚平,为没做过的事产生的后悔却会一直难以释怀

前言:

c++是在C语言基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式。

在C++入门中,我们将补充C语言语法的不足,以及C++是如何队C语言设计不合理的地方进行优化的的

一.命名空间 

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

从上图我们可以看到,C语言是没有这一功能的,但是C++是有的。

命名空间的作用

1.在命名空间中,可以定义变量,函数,和结构体,但是需要注意的是,与结构体不同,命名空间的最后不是以分号结尾的

2.命名空间可以嵌套

3.命名空间可以重名,同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间。

需要注意的是,一个命名空间就定义了一个作用域,命名空间中的所有内容局限在该命名空间中。

那么命名空间该如何使用呢?

命名空间的使用

1.加命名空间名称及作用域限定符 (指定访问)

2.使用using将命名空间中的某个成员引入(展开某个)

3.使用using namespace将命名空间名称引入(展开全部)

C++的输入与输出

你可能已经用习惯了C语言中的printf和scanf,但是人们总是想省事一点的,如果我现在告诉你,C++中的输入和输出可以自动判定数据类型,不需要像printf和scanf一样麻烦,你会不会果断的抛弃他们呢?

使用说明书

1.使用cout标准输出对象和cin标准输入对象时,必须包含<iostream>头文件,并按命名空间使用方法使用std

2.cout和cin是全局的对象流,endl是特殊的C++符号,表示换行输出,他们都包含在<iostream>头文件中

3.<<是流插入运算符,>>是流提取运算符

4.使用cout和cin时,不需要手动控制格式,他们可以自动识别变量的类型

具体使用

#include<iostream>
using namespace std;
int main() {
	int a;
	int b;
	cin >> a;
	cin >> b;
	cout << a << endl;
	cout << b << endl;
	cout << a<<"\n";
	cout << b <<  "\n";
	return 0;

}

缺省参数

缺省参数,又称默认参数,是在声明和定义函数时为函数的参数指定的一个缺省值。在调用函数时,如果没有指定实参则采用该参数的缺省值,否则使用指定的实参。就是你有我就默默站在背后,你没有的时候我就出来帮助你,有点像备胎的感觉,所以你也可以叫他备胎参数(开个玩笑)。

全缺省参数

对于全缺省参数而言,我们对函数的每一个参数都进行了默认值的设置。

半缺省参数

这里我们可不能顾名思义,这个并不是对一半的参数进行默认值的设置,只要是对一个或以上进行默认值设置,就属于半缺省参数。

但是需要注意的是:
1.半缺省参数必须从右至左依次给出(但是传参的时候是从左到右传的),并且不能跳着传默认参数

2. 缺省参数不能在函数声明和函数定义中同时出现,当函数声明和定义在不同文件时,一般对函数的声明进行缺省参数。

3.缺省参数必须是全局变量或者常量

4.C语言不支持缺省参数(编译器不支持)

 

//a.h
void Fun(int a = 10);
//a.c
void Fun(int a = 20) {

}

如果声明和定义位置同时出现,恰巧两个位置提供的值不同,那编译器就无法确定到底该用哪个缺省值。 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值