标签 - C++

? C++ ?    2020-03-26 11:47:50    367    0    0

0x01 面向对象语言的特点

面向对象语言的特点:

  • 封装:数据和行为绑到一起
  • 继承:描述事物与事物之间的关系
  • 多态:不同的对象对同一件事物有不同的操作,不是编译时决定的是运行时决定的
  • 实例化:声明对象的过程叫实例化
  • 设计模式降低耦合性:把不变的代码和变化的代码分开。多态是设计模式的基础

C++ 设计初衷是面向对象的,弥补C的不足。

0x02 断言宏assert()

  • assert():执行到该行代码处,断言一定成立,如果不成立则弹错。
  • 注意:assert只是在 Debug 模式下起作用,并且不能替换检查语句。(意思是 debug 版编译的程序
    编译为 release 版它就不起作用了)
  • 作用:用于快速定位错误位置。

title

如果输入a时输入的小于10则会弹窗:

title

0x03 布尔类型

布尔类型:是C++特有的(C只有_Bool),只有0和1(非零)。

  • 小布尔:bool nRet = true; //false(这种是通常所说的小布尔)
  • 大布尔:
  1. #define BOOL int
  2. #define TRUE 1
  3. #define FALSE 0

0x04 命名空间

C++的三种作用域:

  • 局部作用域:函数作用域、块作用域
  • 名字空间作用域:命名空间(namespace)、全局作用域
  • 类域

命名空间的作用:

避免不经意的名字定义冲突,以及使用库中相同的名字导致的冲突。

命名空间的定义:

  1. namespace CR26
  2. {
  3. int testNum = 3;
  4. int m = 4;
  5. int k = 5;
  6. }

注:声明时候要放在函数的外面或者放到.h文件中,否则会报错:

title

命名空间的三种使用方式:

  1. using CR26::m; //方式一:using CR26::m;(使用命名空间中的m,相当于声明了m,下面可以使用m)
  2. printf("%d\r\n", m);
  3. printf("%d\r\n", CR26::k); //方式二:CR26::k(直接使用命名空间中的k)
  4. using namespace CR26; //方式三:using namespace CR26;(可以使用命名空间中的
? C++ ?    2020-03-25 14:03:58    273    0    0

? C++ ?    2020-03-22 03:39:55    324    0    0
? C++ ?    2020-03-14 11:55:51    501    0    0
? C++ ?    2020-03-11 16:59:00    605    0    0
? C++ ?    2020-03-11 12:57:24    749    0    0