当前位置:   article > 正文

初识C++

初识C++

目录

1.关键词

2. 命名空间

2.1命名空间使用

命名空间的解释

命名空间的嵌套 

使用

第一种

第二种

第三种

3.C++的输入输出 

4缺省参数

缺省参数概念

缺省参数分类

全缺省参数

半缺省参数

5. 函数重载

函数重载概念


首先是一个非常常问的问题:C++难不难?

这边可以肯定的回答:挺难的

不过再难学会了也有很多好处的

比如说我们的的后端开发,或者游戏,又或者一些人工智能的代码

这些都需要用C++去书写

而且学会C++我们去竞赛会比用C语言去竞赛会有很大的优势

这里废话不多说,我们开始第一节

1.关键词

C++相比较于参与原增加了将近一倍的关键字

asm

do

if

return

try

continue

auto

double

inline

short

typedef

for

bool

dynamic_cast

int

signed

typeid

public

break

else

long

sizeof

typename

throw

case

enum

mutable

static

union

wchar_t

catch

explicit

namespace

static_cast

unsigned

default

char

export

new

struct

using

friend

class

extern

operator

switch

virtual

register

const

false

private

template

void

true

const_cast

float

protected

this

volatile

while

delete

goto

reinterpret_cast

这里是一些关键词,总计63个关键词,C语言总计32个关键词

关键词我们在这里不过多解释

等我们学习的不断深入,我们也会不断的去了解这些关键词

2. 命名空间

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

2.1命名空间使用

定义命名空间

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

命名空间的解释

  1. namespace N1 // N1为命名空间的名称
  2. {
  3. // 命名空间中的内容,既可以定义变量,也可以定义函数
  4. int a;
  5. int Add(int left, int right)
  6. {
  7. return left + right;
  8. }
  9. }

如我们的代码所示,我们在命名空间中,将空间名称定义为N1

而a和Add函数都是我们空间的内容,如果不加以解释,是无法使用的

在这里我们可以看到,我们的add是报错的,我们的a也是报错的,没有找到我们的add和a

怎么使用呢?

我们一会马上揭晓

命名空间的嵌套 

在这里,我们将我们的命名空间N2中嵌套了一个N3 ,那么这里如果加以引用,我们也可以使用N3中的元素

同一个工程中允许存在多个相同名称的命名空间

如果同一工程中我们有多个相同的命名空间,那么编译器最后会合成同一个命名空间中。

使用

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

 像我们刚才的这个图一样,我们如如何使用我们的命名空间的元素呢?

第一种

我们在我们的元素前面加上我们的空间名和::就可以使用了 

第二种

我们使用using+空间名+::+所调用的元素 这样就可以去使用我们空间中的元素了

第三种

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

这样引入后,我们就可以不用再加空间名称和::去使用了,

但是这样有很大的弊端,如果我们空间里的元素和我们的定义的元素冲突了,就会以我们主函数中的为主

这样去书写代码会很容易出错误

所以我们在不同的场景,可以使用不同的方式 

3.C++的输入输出 

C++作为我们C语言的延伸代码

也是和C语言是不同的

我们来看一看C++是如何问世的

  1. #include<iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. cout << "hello world" << endl;
  6. return 0;
  7. }

使用cout标准输出(控制台)和cin标准输入(键盘)时,必须包含< iostream >头文件以及std标准命名空 间

这里的endl是换行,类似于我C语言中的\n

注意:早期标准库将所有功能在全局域中实现,声明在.h后缀的头文件中,使用时只需包含对应头文件 即可,后来将其实现在std命名空间下,为了和C头文件区分,也为了正确使用命名空间,规定C++头文 件不带.h;旧编译器(vc 6.0)中还支持格式,后续编译器已不支持,因此推荐使用 +std的方式。

这里也就不多过叙述了,等到我们往下学会继续加深,现在知道这些目前来说够用的

4缺省参数

大家知道什么是备胎吗?

没错,我们的C++也有函数备胎

缺省参数概念

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

我们这样去利用写的Fun函数,就会打印10

如果我们不传参呢?

这里了就会显示为0

所以:

没有传参时,使用参数的默认值

传参时,使用指定的实参

缺省参数分类

全缺省参数
  1. void TestFunc(int a = 10, int b = 20, int c = 30)
  2. {
  3. cout<<"a = "<<a<<endl;
  4. cout<<"b = "<<b<<endl;
  5. cout<<"c = "<<c<<endl;
  6. }

这里的全缺省参数意思就是:

函数传参时,参数都有指定的值,当我们没有去传递参数的数值时,就会使用这些固定的参数

半缺省参数

有全缺省就会有半缺省

  1. void TestFunc(int a, int b = 10, int c = 20)
  2. {
  3. cout<<"a = "<<a<<endl;
  4. cout<<"b = "<<b<<endl;
  5. cout<<"c = "<<c<<endl;
  6. }

这里的a没有固定的传递值,而bc有,所以就是半缺省

注意:

  1. .半缺省参数必须从右往左依次来给出,不能间隔着给
  2. 缺省参数不能在函数声明和定义中同时出现

5. 函数重载

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

函数重载概念

函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 顺序)必须不同,常用来处理实现功能类似数据类型不同的问题

类似于这样

  1. int Add(int left, int right)
  2. {
  3. return left + right;
  4. }
  5. double Add(double left, double right)
  6. {
  7. return left + right;
  8. }
  9. long Add(long left, long right)
  10. {
  11. return left + right;
  12. }
  13. int main()
  14. {
  15. Add(10, 20);
  16. Add(10.0, 20.0);
  17. Add(10L, 20L);
  18. return 0;
  19. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/357216
推荐阅读
相关标签
  

闽ICP备14008679号