boxmoe_header_banner_img

糖画99

文章导读

C++基础知识


avatar
mizuki 2026年3月13日 24

引言

在新的学期本人也是开启了对于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)

查看评论列表

暂无评论


发表评论

表情 颜文字

插入代码