想要学习了解C++,首先需要了解是C++是什么?需要对C++有一个明确的定位。
这时候很多人都会说C++不就是编程语言吗,有啥可了解的。确实C++就是一个编程语言,但是我们在学习的时候要将其当成一种工具,而不是一种技术。简单来说C++就是我们刨地用的锄头,在地里他就是刨地用的,当面对野兽的时候,拿起来就是武器。而你拿锄头能干成啥那就是你的技术。
作为一个农村人要使用锄头我们首先要知道锄头由那些部件组成,那部分是用于刨地的,那部分是把手。同样在使用C++之前要了解C++都有那些部分。
C++的使用主要大的分为两部分,第一部分就是C++语言本身的特性,第二部分就是C++的程序库。
接下来主要介绍的是C++语言本身。
C++语言本身总结起来就是一系列的关键字通过不同的方式在特定的范围组成的一些列执行语句。而不同的方式就包括函数、数据的定义和数据之间的运算。
知道了这个我们来描述一下C++程序的组成。C++程序是编写是在一定的范围中,这个范围就是程序的作用域。在作用域中通过关键字定义数据,定义函数,定义类,定义函数等。
那么C++有那些作用域呢?
C++程序的作用域主要分为四个范围:全局作用域(项目作用域)、命名空间作用域、类作用域和函数作用域。
其中作用域从大到小的顺序为:全局作用域 > 命名空间作用域 > 类作用域 > 函数作用域。
作用域说完了,也知道了程序的运行范围,那么下一步就需要了解关键字了,因为无论是函数的定义还是数据的定义都离不开关键字,可以说是关键字是C++程序编写必不可少的一部分,没有关键字C++就没有语法,更谈不上编程。
C++98/03中的63个关键字,其中也包括C语言中的关键字。C++11中有73个关键字。这些关键字后续都会介绍到。
现在关键字有了,编程范围也知道了,剩下的就是如何通过关键字将26个字母组合成我们需要的程序。
首先是建立一个C++工程,一个简单的C++工程包含就包含一个简单的CPP文件和.h文件,一下就是一个简单的VSC++工程。
以上的C++工程中只有一个简单的main函数,而main函数是C++运行的起始也就是函数,所有的程序包括C语言都有一个起始函数,C语言的起始函数也是main函数。一般在使用C++的时候看不到main函数,那是因为框架已经写好了,例如使用win32API编辑应用程序的时候有一个WinAPI,而qt中则是main文件中的main函数。main函数不是类中的函数,是一个全局函数,在整个项目中有且仅有一个。剩下就是由各个文件和类组成的数据运算的代码逻辑。
以上工程是一个最简单的工程,也是最简单的函数。而C++的工程一般都很复杂。一个完整的C++程序会包含很多文件和模块。每个模块都是由多个文件组成,每个文件中有一个或者多个类组成,而每个模块可能有一个命名空间。
这里会有人疑问,为啥是可能有一个命名空间?
在多模块开发的时候由于每个人开发的模块不一样,但是有可能是用相同的函数或者变量名,因此可能在项目整体运行的时候会出现二义性,为了解决这一问题,C++程序就引入了命名空间,命名空间在一定程度上很好的解决二义性的问题。在小型的C++项目中可以不用命名空间,但是在进行大的应用程序开的时候命名空间是一个不错的选择。使用命名空间很好的隔离各个模块,防止程序中变量名称和函数名称的重复定义。
说完命名空间,接下来说一下类。
在命名空间中就是我们C++的中最常见的组成类(class)。类也可以认为是一个数据类型。一个类一般是.Cpp文件和.h文件共同实现的,类的的声明在一般是在.h文件,类函数的定义是在.CPP文件中。类的结构也是在.h文件中体现。
定义类的关键字是class,在class有很多元素,而组成的元素主要有两个:数据和函数。
数据就是在函数运行过程中需要计算和使用的参数。
函数就是就是计算数据的方法,这些方法在程序中就称为函数。
当然数据在声明定义的过程中需要用到一些关键字来说明数据的类型,还需要一些关键字限制数据的一些特性。
既然数据有限定,那当然函数也需要一些关键字进行限制和赋予一些特性。
上面提到函数是用来处理计算数据的,那么函数是通过什么来控制和处理数据的,C++和其他的程序一样,程序的控制有三种执行结构:循环结构、顺序结构和分支结构。通过这三种结构的组合就形成了程序错综复杂的程序处理逻辑。数据之间的计算是通过运算符来实现数据之间的加减乘除、二进制的移位等。
当然一般在程序开发过程中不会单独使用一个类或者一个文件。那么如果需要使用其他文件中的类应该如何使用?这里就需要使用#include<头文件>或#include “头文件”。这里的#include算是一种宏。
当然当程序运行出现异常之后,就需要使用异常处理类捕获和处理异常。