行业知识
【C++】入门基础
前言:C++���在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式等。熟悉C语言之后,对C++学习有一定的帮助,因此从今天开始们将进入C++的学习。
博主CSDN主页:卫卫卫的个人主页
专栏分类:高质量C++学习
代码仓库:卫卫周大胖的学习日记
关注博主和博主一起学习!一起努力!
目录标题
- C++入门
- 什么是C++
- C++发展史
- C++ 关键字
- 命名空间的使用
- namspace的空间定义普通变量
- 命名空间定义函数与类型
- 命名空间定义函数
- 命名空间定义类型
- 使用using将命名空间中某个成员引入
- 使用using将命名空间中某个成员引入
- C++输入与输出
- 缺省参数
- 全缺省参数
- 半缺省参数
- 函数重载
- 参数类型不同
- 参数个数不同
- 参数类型顺序不同
C++入门
什么是C++
C++是一种通用的编程语言,它是一种高级、静态类型的编程语言,同时也是一种面向对象的语言。C++是C语言的扩展,它继承了C语言的语法和功能,并添加了许多新的特性。C++支持面向对象的编程范式,包括封装、继承和多态性。它还提供了许多其他功能,如异常处理、模板元编程和标准模板库(STL),使程序员能够更高效地编写复杂的程序。
C++具有高性能和灵活性,可以用于开发各种类型的应用程序,包括桌面应用程序、嵌入式系统、游戏、图形界面应用程序、操作系统和网络应用程序等。由于其广泛的应用领域和强大的功能,C++已成为一种非常流行的编程语言。
总的来说,C++是一种功能强大、灵活且广泛应用的编程语言,适用于各种开发需求。
C++发展史
C++的发展可以追溯到20世纪80年代初。以下是C++发展的主要里程碑:
-
1980年:Bjarne Stroustrup在贝尔实验室开始将C语言扩展为C with Classes,这是C++的前身。通过添加类和对象的概念,C with Classes使得面向对象编程成为可能。
-
1983年:C with Classes改名为C++。C++的名称表示它是C语言的一个增强版,因为C++扩展了C语言的功能并添加了面向对象编程的特性。
-
1985年:在《C++程序设计语言》一书中,Stroustrup正式发布和介绍了C++语言。这本书成为学习C++的标准教材,并在学术界和工业界产生了广泛的影响。
-
1990年:C++的第一个国际标准(ISO/IEC 14882:1998)发布。这个标准为C++提供了一个统一的语法和语义规范,使得C++可以在不同的编译器和平台上进行跨平台开发。
-
1998年:C++的第二个国际标准(ISO/IEC 14882:2003)发布。这个标准引入了一些新的特性,如模板特化、异常规范和命名空间别名等。
-
2011年:C++的第三个国际标准(ISO/IEC 14882:2011)发布,通常被称为C++11。C++11引入了许多新的特性,如自动类型推导、Lambda表达式、右值引用和智能指针等。
-
2014年:C++的第四个国际标准(ISO/IEC 14882:2014)发布,通常被称为C++14。C++14对C++11进行了一些修正和改进,同时添加了一些新的功能。
-
2017年:C++的第五个国际标准(ISO/IEC 14882:2017)发布,通常被称为C++17。C++17增加了许多新的特性,如变量声明初始化、折叠表达式、结构化绑定和并行算法等。
-
2020年:C++的第六个国际标准(ISO/IEC 14882:2020)发布,通常被称为C++20。C++20引入了一系列新的特性,如概念、协程、范围和模块等。
C++ 关键字
命名空间的使用
在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题。
#include#includeint rand = 1;//在C语言中,rand是其一个库函数的命名名字,因此会造成命名冲突int main(){printf("%d\n", rand);// C语言没办法解决类似这样的命名冲突问题,所以C++提出了namespace来解决return 0;}namspace的空间定义普通变量
namespace space{int rand = 10;}//int rand = 1;int main(){int rand = 3;printf("%d\n", space::rand);printf("%d\n", rand);return 0;}在上述示例中,我们定义了一个名为space的命名空间。命名空间中包含了一个整型变量。在main函数中,我们通过::来访问命名空间中的成员,在以前的C语言中,我们是无法解决同一个名字代表着两个不同的变量的,因此我们可以通过命名空间这一特点来充分解决我们在C语言的痛点。
命名空间定义函数与类型
命名空间定义函数
在C++中,命名空间不仅仅可以定义普通变量,还可以定义函数与类型
#includenamespace Myspace{int Add(int x, int y){return x + y;}}int Add(int x, int y){return x + y;}int main(){int n = 9;int m = 22;printf("%d\n",Myspace::Add(n, m));//通过命名空间,我们可以充分的解决函数命名冲突的问题return 0;}命名空间定义类型
对于结构体的命名空间的引用与其它的有些许不同,代码实例如下:
#includenamespace Mystruct{struct Node{int val;};}int main(){Mystruct::Node example;example.val = 10;printf("%d\n",example.val);return 0;}使用using将命名空间中某个成员引入
using声明:使用using关键字来声明一个特定的命名空间、类或者函数,以便在当前的作用域中直接使用该名称而无需完整的限定符,我们也可以通俗的理解成,让这个展开的变量或者函数成为了一个全局变量。如下所示:
#includenamespace Myspace {int num1 = 10;int num2 = 20;int Add(int x, int y){return x + y;}}using namespace Myspace;int main(){printf("%d\n", num1);printf("%d\n", num2);printf("%d\n", Add(num1, num2));return 0;}使用using将命名空间中某个成员引入
#includenamespace Mysapce{int n1 = 20;int n2 = 10;}using Mysapce::n1;//展开命名空间中的n1变量int main(){printf("%d\n", n1);return 0;}C++输入与输出
- 使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时,必须包含头文件
以及按命名空间使用方法使用std。
- cout和cin是全局的流对象,endl是特殊的C++符号,表示换行输出,他们都包含在包含头文件中。
- 是流提取运算符。
- 使用C++输入输出更方便,不需要像printf/scanf输入输出时那样,需要手动控制格式。
C++的输入输出可以自动识别变量类型。
- 实际上cout和cin分别是ostream和istream类型的对象,>>和int n = 0;char m = 0;std::cout int n = 0;char m = 0;std::cin n m;//向显示器输入整型n与字符m;std::cout cout Func();//在我们没有传参时,会使用默认的参数Func(10);//传参时用我们传递的参数}cout Func();return 0;}cout Func(10,99);return 0;}return x + y;}double Add(double x, double y){return x + y;}int main(){cout cout cout func(1);func(4, 5);return 0;}cout cout f(10, 'a');f('a', 10);return 0;}
-
上一篇:服务器出现小偷怎么找?
下一篇:ssh终端怎么连接服务器?