欢迎光临
我们一直在努力

C++ 语法——入门基础

文章目录

  • 一、命名空间
    • 1.1 namespace 的定义
    • 1.2 命名空间使用
  • 二、C++ 输入和输出
  • 三、缺省参数
  • 四、函数符重载
  • 五、引用
    • 5.1 引用的概念和特点
    • 5.2 引用的使用
    • 5.3 const 引用
  • 六、nullptr

一、命名空间

在 C/C++ 中,变量、函数以及类都是大量存在的,他们的名称都存在于全局作用域中,可能会导致很多冲突问题,使用命名空间是为了对标识符的名称进行本地化以规避这样的冲突,因此引入了关键字 namespace。

1.1 namespace 的定义

1.2 命名空间使用

编译查找一个量的声明/定义时,默认只会在局部或者全局查找,不会到命名空间里面去查找。此时我们要使用命名空间中定义的变量/函数,有三种方式:

  • 指定命名空间访问,项目中推荐这种方式。
  • using 将命名空间中某个成员展开,项目中经常访问的不存在冲突的成员推荐这种方式。
  • 展开命名空间中全部成员,日常练习为了方便推荐使用,项目中不推荐。
  • 接下来我们看如下例子:

    二、C++ 输入和输出

    在使用输入或者输出的时候需要包括头文件 iostream 是 Input Output Sream 的缩写,是标准的输入、输出流库,定义了标准的输入、输出对象。我们常用到其中的 cout 函数、cin 函数以及 endl 函数,他们都隶属于 C++ 标准库,存放在一个叫 std(standard)的命名空间中,所以我们要通过命名空间的方式去使用它们。

    • cin:主要面向窄字符(narrow characters(of type char))的标准输入流。
    • cout:主要面向窄字符的标准输出流。
    • endl:td::endl 是⼀个函数,流插⼊输出时,相当于插⼊⼀个换⾏字符加刷新缓冲区。

    三、缺省参数

    • 缺省参数是声明或定义函数时为函数的参数指定⼀个缺省值。在调⽤该函数时,如果没有指定实参则采⽤该形参的缺省值,否则使⽤指定的实参,缺省参数分为全缺省和半缺省参数。(有些地⽅把缺省参数也叫默认参数)
    • 全缺省就是全部形参给缺省值,半缺省就是部分形参给缺省值。C++规定半缺省参数必须从右往左依次连续缺省,不能间隔跳跃给缺省值。
    • 带缺省参数的函数调⽤,C++规定必须从左到右依次给实参,不能跳跃给实参。
    • 函数声明和定义分离时,缺省参数不能在函数声明和定义中同时出现,规定必须函数声明给缺省值。

    四、函数符重载

    C++⽀持在同⼀作⽤域中出现同名函数,但是要求这些同名函数的形参不同,可以是参数个数不同或者类型不同。这样C++函数调⽤就表现出了多态⾏为,使⽤更灵活。C语⾔是不⽀持同⼀作⽤域中出现同名函数的。

    五、引用

    5.1 引用的概念和特点

    引用是给已经存在的变量取一个别名,编译器不会为引用变量开辟内存空间,而是和它引用的变量共同使用一块内存空间。类型& 引用别名 = 引用对象。需要注意的是,引用在定义时必须进行初始化;一个变量可以有多个引用;引用一旦引用了一个实体,就不能引用其他实体。

    5.2 引用的使用

    引用在实践中主要是于引用传参和引用做返回值中减少拷贝效率和改变引用对象时同时改变被引用对象。相较于指针传参,引用传参与其功能类似,使用上更加方便。

    5.3 const 引用

    可以引用一个 const 对象但是必须用 const 引用。const 引用也可以引用普通对象,因为访问的权限可以被缩小但不能被放大。

    六、nullptr

    NULL 实际上是一个宏,在传统的 C 头文件(stddef.h)中,可以看到如下代码:

    #inndef NULL
    #ifdef __cplusplus
    #define NULL 0
    #else
    #define NULL ((void *) 0)
    #endif
    #endif

    在 C++ 中 NULL 可能被定义成字面常量 0,或者被定义为无类型指针(void*),无论那种定义,在使用空值的指针时,都不可避免的会遇到一些麻烦。为了解决这个问题,C++11 引入关键字 nullptr,nullptr 表示一种特殊类型的字面量,它可以转换成任意其他的指针类型。使用 nullptr 定义空指针可以避免类型转换的问题,因为 nullptr 只能被隐式地转换为指针类型,而不能被转换为整数类型。


    赞(0)
    未经允许不得转载:171主机测评 » C++ 语法——入门基础
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址