引言
在新的学期本人也是开启了对于C++的学习,将在此博客上持续更新关于C++的学习内容
1.命名空间
- 1.1定义
在c语言的使用中,我们常常会陷入为变量取名的困难中,但在c++中,我们可以通过命名空间的方式来避免这种情况,基本格式如下:
namespace mzk
{
int rand = 10
}//(要注意这里是没有加;的)
mzk::rand = 20;
- 1.2具体解释
在这串代码中,mzk是这个命名空间的空间名,rand则是命名空间mzk内的变量,要使用rand这个变量则在mzk后加上::再跟上变量名就可以了,这只是最简单的用法
- 1.3命名空间的特点
1.命名空间内不仅可以定义变量,还可以定义函数跟结构体
2.可以在命名空间内嵌套定义,如:
namespace mzk
{
namespace ena
{
int knd = 10;
}
}
3.在同一程序里的不同文件的相同的命名空间是会自动合并的
4.只能在全局定义
5.c++标准库存在于‘std’库内
- 1.4命名空间的使用
1.指定命名,在定义中已经详细讲过了
2.用using展开整个命名空间可直接使用变量,但风险大,不推荐,如:
namespace mzk
{
int rand = 10
}
using namespace mzk;
rand = 20;
3.单独展开某个成员使用,如:
namespace mzk
{
int rand = 10
}
using mzk::rand;
rand = 20;
- 1.5技巧
在自己写程序练习时可以用uing namespace std,这样就可以省下写std::的功夫了,当然这仅限于练习
2.C++的输入与输出
- 2.1库与操作符介绍
<iostream> :标准输入输出库
std::cout :窄字符标准输出流
std::cin :窄字符标准输入流
<< :流插入
>> :流输出
std::endl :在流插入和流输出时相当于一个换行刷新字符
- 2.2如何控制精度
1.直接使用printf的方法,因为c++是兼容c的
2.默认为五位小数
3.自己去学,很麻烦,不建议
- 2.3如何提高效率
加入这三行代码:
ios_base::sync_with_stdio(fasle);
cin_tie(nullptr);
cout_tie(nullptr);
3.缺省函数
- 3.1含义
在函数的形参中设置一个默认值,没有传参会自动使用默认值
- 3.2类型
1.全缺省函数 :void Fun(int a = 0, int b = 0, int c = 0);
2.半缺省函数 :void Fun(int a , int b = 0, int c = 0);
a.半缺省函数的缺省参数不能间隔
b,必须从右往左缺省
c.传参数必须从左往右
- 3.3注意事项
函数的缺省必须在声明中给定,不能在定义中设定缺省,但是当无声明时就可以在定义中设定缺省
4.函数重载
- 4.1含义
同名函数,且在同一作用域的函数
- 4.2类型
1.形参类型不同
2.形参个数不同
3.形参顺序不同
4.返回值不同不能作为重载函数的条件
5.引用
- 5.1概念和定义
给已有变量取一个别名,在类型后面跟一个&,如: int& b = a,b就是a的别名
- 5.2实践(交换函数的实现)
Swap(int& a. int& b)
{
int n = a;
a = b;
b = n;
}
Swap(a, b);
- 5.3特性
1.引用必须初始化
2.可以给别名取别名
3.引用一旦引用了一个实体,就不能再引用第二个实体
- 5.4使用
1.用来传参和做返回值
2.引用传参和指针传参功能类似,但是引用更方便,因为不用取地址
3.引用做返回值,返回数据的别名,可以减少拷贝的时间,使程序更快
6.const引用
- 6.1概念
只能读不能写,就用const引用
- 6.2特性
1.可以用const引用去引用变量,缩小权限
2.const常量可以对常量取别名
3.不可以用引用去引用const常量
7.引用和指针的关系(重要)
1.指针开空间,引用不开空间
2.汇编底层逻辑是相同的
3.引用必须初始化
4.sizeof含义不同,引用的结果是引用的类型大小
5.引用在引用一个对象后不可以改变引用对象,但是指针可以改变对象
8.inline(内联)
- 7.1概念
在函数前加上inline,为了提效,代替宏,因为宏难以写正确
- 7.2特性
1.默认debug版本下不展开,方便调试
2.inline对于编译器只是一个建议,如果函数太过于复杂,编译器会选择忽略
3.不建议声明和定义分在两个文件,直接在“.h”文件中写完就行
9.nullptr(空指针)
指针专用,不会转化为整形,以后的空指针都用这个
总结
这些只是一点C++的开胃小菜,后面要学习的还要很多,加油加油

评论(0)
暂无评论