一、一个用于查询C++标准库内函数、操作符等的链接
二、C++的第一个程序
1、C语言中的语法在C++中仍旧适用,首先我们来看一下C语言和C++的一点区别
#include<stdio.h>
//C语言中的打印
int main()
{
printf("Hello word");
return 0;
}
#include<iostream>
using namespace std;
//C++中的打印
int main1()
{
cout << "Hello word" << endl;
return 0;
}
上述代码都可以打印出 “Hello word” 这个字符串,但是其书写过程却不太一样,这是因为C++有着自己的一套输出流程。
三、namespace的定义
1、定义命名空间:
其使用方法就是namespace后面加上命名空间域的名字跟一个大括号即可,其内容可以是变量/函数/结构体等。
namespace lx
{
int rand = 10;
int Add(){}
struct str{};
}
2、其本质是开辟一个独立的空间域,独立于全局域和局部域之外,在定义的命名空间域内创建与全局变量相同名字的变量不会产生冲突。
int a = 20;
namespace lx
{
int a = 10;
int Add(){}
struct str{};
}
3、namespace只能定义在全局,同时它是可以嵌套定义的
namespace lx
{
int a = 10;
namespace bit
{
int a = 10;
}
}
4、在多文件下定义的同名namespace会被认为是同一个空间域
四、命名空间的使用
当我们编译或者运行的时候编译器不会去到命名空间中去查找,而是在全局域和局部域中查找,所以我们需要额外使用一个操作符来解决这个问题。
“::”:这两个冒号组成的操作符叫作用域解析运算符,其使用方法为
1、命名空间的名字+域解析运算符+空间内部变量/函数等的名字:指定访问的命名空间
2、using+命名空间的名字+域解析运算符+空间内部变量/函数等的名字:展开指定成员
3、using+namespace+命名空间名:展开命名空间中的全部成员
五、C++的输入和输出
<iostream>是标准的输入输出流库,定义了标准的输入输入对象。
std::cin是标准的输入流,是istream类的对象
std::cout是标准的输出流,是ostream类的对象
std::endl是一个函数,流插入输出时,相当于增加一个换行符来加速缓冲区的刷新
<<是流插入运算符,在输出时使用
>>是流提取运算符,在输入时使用
cout/cin/endl等都属于C++标准库,C++标准库都放在一个叫std(standard)的命名空间中,所以要通过命名空间的方式去使用他们
int main()
{
cout << "Hello word" << endl;
int a = 0;
cin >> a;
cout << a << '\n';
return 0;
}
//这里的endl和\n具有同样的效果,但是\n并不能取代endl
六、缺省参数
缺省参数是声明或定义函数时给一个缺省值。在调用函数时,如果没有给定的实参则使用形参缺省值,否则使用指定的实参,缺省参数分为全缺省和半缺省。
全缺省就是全部形参给缺省值,半缺省就是部分形参给缺省值,在C++中规定形参缺省值的给定必须是从右往左给,不能间隔或者跳跃给。
带缺省的函数调用时必须使用从左到右的方式给实参,不能间隔跳跃
函数的声明和定义分离时,声明和定义不能同时给定缺省值,只有在函数声明时才能给定缺省值
从上图中我们就可以看出,当定义和声明同时给定缺省值时就会产生错误。
完结撒花-------------