小工具知识网

当前位置: 首页 > 行业知识 > 【C++】入门(一):命名空间、缺省参数、函数重载

行业知识

【C++】入门(一):命名空间、缺省参数、函数重载

2026-11-08 05:29:26 来源:互联网转载

目录

一、关键字

二、命名空间

问题引入(问题代码):

域的问题

1.::域作用限定符 的 用法:

2.域的分类

3.编译器的搜索原则

命名空间的定义

命名空间的使用

举个栗子:

1.作用域限定符指定命名空间名称

2. using 引入命名空间中的成员 即 展开命名空间中某一个

3. usinng namespace 命名空间名称 展开命名空间

三、C++输入、输出

四、缺省参数

概念

全缺省参数

半缺省参数

实践中的应用场景举个例子:

声明和定义分离

回顾 声明 和定义的概念

再来分析上述程序

理解编译与链接的过程

理解函数与文件的关系

五、函数重载

代码示例:

C++是如何支持函数重载的?

函数名修饰


一、关键字

asmdoifreturntrycontinue
autodoubleinlineshorttypedeffor
booldynamic_castintsignedtypeidpublic
breakelselongsizeoftypenamethrow
caseenummutablestaticunionwchar_t
catchexplicitnamespacestatic_castunsigneddefault
charexternoperatorswitchvirtualregister
constfalseprivatetemplatevoidtrue
const_castfloatprotectedthisvolatilewhile
deletegotoreinterpret_cast

增加的关键字: C++增加了一些关键字来支持面向对象编程(如类、继承、多态等)和模板编程。例如,class,public,protected,private,virtual,friend,template,typename等。这些关键字没有在C语言中。

类型增强:C++增加了一些用于类型安全和方便的关键字,如bool,true,false,using,namespace等。

异常处理:为了支持异常处理,C++引入了try,catch,throw等关键字。

新的转换操作符:C++提供了static_cast,dynamic_cast,const_cast和reinterpret_cast等关键字进行类型转换,这是C语言中所没有的。

增强的存储类说明符:C++引入了mutable和thread_local等存储类说明符。

模板编程:为了支持泛型编程,C++增加了template和typename关键字。

新增运算符:C++还定义了如new,delete等用于动态内存管理的关键字,这些在C中通常通过库函数如malloc和free来实现。

特殊成员函数关键字:C++还有如default和delete等关键字,用于特殊成员函数的声明,这样设计是为了提供更好的控制。

二、命名空间

问题引入(问题代码):

下面代码存在命名冲突 : rand变量 和头文件中声明的函数 rand() 名字相同 导致冲突。

#include#include   /*rand*/int rand = 0;// C语言没办法解决类似这样的命名冲突问题,所以C++提出了namespaceguan来解决int main(){    printf("%d\n",rand);    return 0;}

域的问题

1.::域作用限定符 的 用法:

限定符左边是哪一个域名 就限定了访问该变量的范围

左边是空 默认是全局域

2.域的分类

  • 全局域

  • 局部域:如果不用限定符,默认访问局部域 局部优先

  • 命名空间域:为了防止命名冲突 eg.全局定义两个同名变量 ,防止重定义,C++提出就用关键字namespace把他们定义在不同命名空间域中。

  • 类域

    注意:

    全局域、局部域既会影响生命周期,也会影响访问。命名空间只影响访问

    3.编译器的搜索原则 

     1️⃣当前局部域 2️⃣全局域 3️⃣如果指定了,直接去指定域搜索

    命名空间的定义

    正常定义

     // 正常的命名空间定义namespace hhh{    // 命名空间中可以定义变量/函数/类型    int rand = 10;    int Add(int left, int right)    {        return left + right;    }struct Node { struct Node* next; int val; }; }

    嵌套定义

    举个栗子:

    namespace aaa{namespace bbb{void Push(){coutc;这行代码首先从标准输入流中接收一个双精度浮点数,并将其存储在变量b中,然后接收一个字符并存储在c中。   

    四、缺省参数

    • 概念

      声明或定义函数时为函数的参数指定缺省值。缺省值就是给形参设置一个默认值。调用函数时,如果没有指定实参,则使用参数的默认值。

      缺省值必须是 常量或者全局变量。一般使用常量。

      void Func(int a = 0){    cout

上一篇:flv怎么在网页播放?

下一篇:网狐6603游戏源码深度解析,探索游戏世界的奥秘与无限可能