C++入门基础语法(一)

命名空间

  在C/C++实际开发过程中,一个项目可能有多个人来完成代码的编写,那么不可避免的会有一些变量和函数名会重复,C++中给了一个命名空间这样一个定义来完成对变量和函数的作用域范围的限制。

命名空间定义

namespace 名字
{
	变量;
	函数;
}

例如:

namespace test
{
	int a = 0;
	void fun(){};
}

几点注意:
1、可以嵌套定义;
2、可以定义多个名称相同的命名空间,最后编译器会整合成一个;
3、命名空间定义的变量或函数只在该命名空间下有用;
4、C++标准库的命名空间为:std

命名空间使用

使用时有两种方式:

1、在调用命名空间的变量或者函数时直接使用:命名空间名::成员;
2、引入成员:using 命名空间::成员
3、可以直接展开命名空间,展开后下面的调用将不再需要加上命名空间名:using  namespace 命名空间名;

C++标准输入输出

  C语言中输入输出一般为scanfprintf,而它们都需要对输入或输出的参数格式进行标识,C++的标准输入输出则不需要。

1、标准输入:cin >>
2、标准输出:cout <<

注意事项:

标准输入输出必须包含<iostream>头文件和std命名空间;

缺省参数

  在C++中,在函数声明或定义的时候可以给函数的参数进行赋值操作,给定函数参数一个默认值,函数传参时如果不传参数,则使用该默认值。

全缺省参数

  全缺省参数中,函数的每个参数都赋给了一个初始值,例如:

void func(int a = 1, int b = 2, int c = 3)
{}

  传参如下:

1、三个参数都传:func(10, 20, 30);
2、三个参数都使用缺省参数:func();
3、使用一部分缺省参数:func(10);

  注意:在使用一部分缺省参数的时候必须从左向右一次赋值,不能出现函数传参的左边还有未传值的参数!

半缺省参数

  半缺省参数顾名思义就是有一部分设置了默认值,一部分没设置,例如:

void func(int a, int b = 2, int c = 3)
{}

  同样我们调用函数传参的时候可以省略有缺省值的参数传参。
  注意:

1、半缺省参数必须从右向左进行设置,必须连续;
2、无论是全缺省还是半缺省,不能再函数的声明和定义中同时出现,只能选择一个进行设置;

函数重载

函数重载概念

  有多个函数,函数名相同,函数的参数类型、个数、顺序不相同,那么成为函数重载。
例如:

int func(int a, char b){}
int func(char a, int b){}
int func(int a, char b, int c){}
float func(float a, float b){}

可以看到函数重载的几个要点:

1、函数名相同;
2、参数类型、个数、顺序不同;
3、与返回值无关;
4、必须在同一个作用域中;

函数重载原理

  为什么C++支持函数重载而C语言不支持函数重载?
  我们可以看下编译之后的函数代码,以 int Func(int a, int b) 为例:

C编译器编译之后的底层函数名:
	_Func
g++编译器编译之后的底层函数名:
	_Z3Funcii

  我们可以看到,C编译器的底层函数名只有一个函数名,没有其他信息,而g++编译器Func函数名后面有ii,这两个i就表示后面的两个int类型的参数;
  由此可见,在C++中,当同名函数如果后面的参数类型、个数、顺序不同时,编译器也是可以辨别出来的,所以就有了函数重载这一概念。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值