C++ 零碎知识点集合

比较简单的我就直接写在这篇里了,比较复杂的会单独写一篇博客。

C/C++ 新旧风格

  1. C 旧风格
    .h 结尾,如 math.h ,由于 C++ 兼容 C ,所以 C/C++ 均可使用。
  2. C++ 旧风格
    .h 结尾,如 iostream.h ,此时无 名字空间 等特性。
  3. C 新风格
    前缀加上 c ,无 .h 的扩展名,如 math.h 改为了 cmath ,增加了新特性,可以使用不是 C 的特性,如 namespace std
  4. C++ 新风格
    iostream ,增加了使用 名字空间(namespace std) 的特性。

命名空间

namespace 即“命名空间”,也称“名称空间” 、”名字空间”。C++ 使用命名空间的原因主要是,人类可用的单词数太少,并且不同的人写的程序不可能所有的变量都没有重名现象,为了解决变量重名,于是引入命名空间来区分,将变量限制在不同的域内。
详细介绍:
https://blog.csdn.net/qq_40873884/article/details/79576045


缺省参数(默认参数)

C++ 引入函数缺省参数,即默认参数,极大地提高了使用函数的灵活性,

我们来举一个简单的例子:

#include <iostream>
using namespace std;

int test(int x = 3, int y = 5) {
    return x + y;
}

int main(int argc, const char * argv[]) {
    int a = 1, b = 2;
    cout << "传两个参数:" << test(a, b) << endl;
    cout << "传一个参数:" << test(a) << endl;
    cout << "不传参数:" << test() << endl;
    return 0;
}

输出结果:

传两个参数:3
传一个参数:6
不传参数:8

很容易看出,当我们传两个参数时,形参 x 变成了 a 的值(1),形参 y 变成了 b 的值(2),所以输出结果为 3 ;当我们传一个参数时,形参 x 变成了 a 的值(1),形参 y 是我们指定了的 5 ,所以输出结果为 6 ;当我们不传参数时,形参 x 使我们指定的值 3 ,形参 y 是我们指定了的 5 ,所以输出结果为 8 。

这就是所谓的缺省参数,就是在声明函数的某个参数时,给他指定一个默认值,当你传参数了,这个参数会是你传的值;当你未传参,这个参数就是指定的值。

缺省参数分为两类:

  1. 全缺省参数
  2. 半缺省参数

全缺省参数就是我们上面所举的例子:

int test(int x = 3, int y = 5);

也就是说,我们给所有的参数都指定了值,而使用者可以选择 传所有参数、或部分参数、或完全不传参。
注意:若您选择传部分参数,您只能从最后一个参数开始进行省略;也就是说,您要省略一个参数,那么必须省略它后面所有的参数。正如上面的例子,您若要选择省略传参 a ,那么 b 也无法传入,否则,您单传一个参数,那么这个参数必定是 a 的形参。

说完全缺省参数,那么半缺省参数呢?

int test(int x, int y, int z = 1); 

像上面这种写法,便是半缺省参数,即我们只指定了部分参数的值。但是这种指定方式也是有讲究的,指定的必须是右边的参数。其实想想也很简单了,我们省略参数是从右边开始省略,那么必定是右边的先开始指定。

在使用的时候,我们也可以采取将默认参数写在声明中,而函数定义与没有默认参数时一样,如下:
声明与定义

当我们要经常使用某个值,而其他值只是偶尔使用,这样,我们将经常使用的值作为缺省的参数,将会有很大帮助。
但这并非是编程上的重大突破,只是会带来很多便利。通过使用缺省参数,可以减少要定义的析构函数、方法以及方法重载的数量。


函数重载

缺省参数让我们在参数数目不同时可以调用同一个函数,而函数重载让我们能够使用多个同名函数。详细链接:
https://blog.csdn.net/qq_40873884/article/details/79827796


引用变量

引用是 C++ 对 C 语言的重要扩充,详解链接:
https://blog.csdn.net/qq_40873884/article/details/79632314


持续更新...

哈哈哈哈哈哈