一.初识C++
1.namespace:名命空间
(1)只能定义在全局:也就是说要定义在main函数之外,
目的:在一个项目中,有多个人完成时,防止使用名字冲突,也为了防止使用函数的变量名的时候,不会和系统的名字重复
如图1.1.1
(2)可以嵌套使用:意思就是可以在namespace里面在嵌套多个个namespace,但一般不会嵌套又嵌套,因为那样,会导致输出的时候要写的太多了
如图1.2.1
2.作用域::
(1)无嵌套
如图,在作用域中定义的rand,在访问的时候,必须写为图中的方式,不然将会无法辨别
(2)嵌套
在namespace中嵌套就是图片那种的方式来进行访问。
这也就是为什么不要一直嵌套,不然在输出时非常的麻烦
3.C++中的四个域
1.定义
主要分为四个域
函数局部域,全局域,名命空间域,类域
其中,函数局部域,全局域会影响生命周期。
名命空间域,类域不会影响生命周期
2.顺序
若无指定:先局部,在全局;
若指定了:则直接去找就行:
3.标准域
在C++中系统给了我们标注域
std(standard)也就是C++定义
二.名命空间使用
1.查找
编译器在查找的时候,默认是去局部和全局,不会直接访问名命空间域
所以就有这几种方法
(1).::用此符号来进行访问
2.using
有些时候一直使用::太过于麻烦,那么就有了using;
(1)
如图,把N这个域中的b来进行展开,那么在接下来访问的时候,就不需要再加N::。
(2)
如图,也可以进行全局展开,不过在大型项目中,这样做的风险太大了,会导致名字重复。
三.示例
这是C++的写法示例
四.输入输出
1.<iostream>
是 Input Output Stream 的缩写,要进行输入输出的时候,就必须加入这个头文件。
2.cout:流输出
3.cin:流输入
4.endl 换行
这个就像但于是一个换行符'\n'。
5.优点
以上所说的输入输出相较于C语言来说最大的有点就是,可以自动判断类型不需要写什么%d,%c这些
6.注意
并且这些都可以进行叠加
cin>>i>>d.
cout<<i<<endl
这些都可以的
7.string
使用这个需要加头文件<string>
这个可以不用判断类型,他将会自己判断:也就是省去了,int,char这些直接用string代替就可以
#include <string> std::string str1; // 默认初始化,空字符串 std::string str2 = "Hello"; // 拷贝初始化 std::string str3("World"); // 直接初始化 std::string str4(5, 'x'); // 初始化包含5个'x'的字符串五.缺省参数
1.
在定义函数的时候给定一个出事的值,在main中调用的时候可以使用,也可以直接传入一个全新的,这样就可以来去自如了
2.
在这种情况下,要进行传值的话,必须顺序传,不然不可以
也就是说不可以Func1(,19,18),这样是不行的,必须顺序传
Func1(1,1)这样是可以的
3.
在这种情况下,必须进行传值,不然无法运行
4.并且不存在先给a,然后不给b,c;
也就是说,最后一个必须有值,且中间不可以跳。