行业知识
C++入门和基础
���录
文章目录
前言
一、C++关键字
二、命名空间
2.1 命名空间的定义
2.2 命名空间的使用
2.3 标准命名空间
三、C++输入&输出
四、缺省参数
4.1 缺省参数的概念
4.2 缺省参数的分类
五、函数重载
5.1 函数重载的简介
5.2 函数重载的分类
六、引用
6.1 引用的概念
6.2 常引用
6.3 引用使用场景
6.4 引用和指针的区别
七、内联函数
八、auto关键字(C++11)
8.1 auto的使用简介
8.2 auto的使用细则
8.3 基于范围的for循环
九、指针空值nullptr(C++11)
总结
前言
C++是一种通用的编程语言,它是C语言的扩展。C++可以进行面向对象编程,支持类、继承、多态等面向对象的特性。它还提供了一些其他的功能,如模板、异常处理、动态内存管理等。C++是一种高级语言,可以用来开发各种应用程序,包括系统软件、桌面应用、游戏、嵌入式系统等。C++具有高性能和高效的特点,广泛应用于工业界和学术界。
一、C++关键字
C++对比C语言拓展了一些关键字,这里只是简单的给出,不对关键字进行详细的介绍。
二、命名空间
在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化, 以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。
#include #include int rand = 10;// C语言没办法解决类似这样的命名冲突问题,所以C++提出了namespace来解决int main(){printf("%d\n", rand);return 0;}// 编译后后报错:error C2365: “rand”: 重定义;以前的定义是“函数” 2.1 命名空间的定义
定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{} 中即为命名空间的成员。
1.正常的命名空间定义
namespace hh{// 命名空间中可以定义变量/函数/类型int rand = 10;int Add(int left, int right){return left + right;}struct Node{struct Node* next;int val;};} 2.命名空间可以嵌套
namespace N1{int a;int b;int Add(int left, int right){return left + right;}namespace N2{int c;int d;int Sub(int left, int right){return left - right;}}} 3.同一个工程中允许存在多个相同名称的命名空间, 编译器最后会合成同一个命名空间中。
ps:下面的代码中的test.h和test.cpp中的两个N1会被合并成一个
// test.hnamespace N1{int Mul(int left, int right){return left * right;}}// test.cppnamespace N1{int a;int b;int Add(int left, int right){return left + right;}namespace N2{int c;int d;int Sub(int left, int right){return left - right;}}} 注意:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。
2.2 命名空间的使用
命名空间的使用有三种方式:
1.加命名空间名称及作用域限定符
namespace hh{int a = 6;}int main(){int b = hh::a;return 0;} 2.使用using将命名空间中某个成员引入
namespace hh{int a = 6;}using hh::a;int main(){int b = a;return 0;} 3.使用using namespace 命名空间名称引入
namespace hh{int a = 6;}using namespace hh;int main(){int b = a;return 0;} 2.3 标准命名空间
在C++中,标准命名空间(Standard Namespace)是指包含了许多标准库函数、类和对象的命名空间,这些函数、类和对象是C++标准库的一部分。
标准命名空间的名称是std,它位于全局命名空间中。为了使用标准命名空间中的函数、类或对象,可以使用std::前缀加上相应的名称。
例如,使用标准命名空间中的cout和endl:
#include int main() { std::cout > b >> c;cout
上一篇:橘子服务器怎么改名?