C++初始

news/2025/7/8 19:51:33/

想要学习了解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算是一种

当然当程序运行出现异常之后,就需要使用异常处理类捕获和处理异常。


http://www.ppmy.cn/news/1123003.html

相关文章

融云受邀参加 Web3.0 顶级峰会「Meta Era Summit 2023」

本周四 19:00-20:00&#xff0c;融云直播课 社交泛娱乐出海最短变现路径如何快速实现一款 1V1 视频应用&#xff1f; 欢迎点击上方小程序报名~ 9 月 12 日&#xff0c;由中国香港 Web3.0 媒体 Meta Era 主办的“Meta Era Summit 2023”在新加坡收官&#xff0c;融云作为战略合作…

1 MySQL 高级(进阶) SQL 语句(一)

目录 1 MySQL SQL 语句 1.1SELECT 1.2 DISTINCT 1.3 WHERE 1.4 AND OR 1.5 in 1.6 BETWEEN 2 通配符 ----通常通配符都是跟 LIKE 一起使用的 2.1 LIKE 2.2 ORDER BY 3函数 3.1数学函数 3.2 聚合函数 3.3 字符串函数 4 GROUP BY 4.1 HAVING 5 别名 6 子查询 …

IDEA中创建Java Web项目方法2

以下过程使用IntelliJ IDEA 2021.3 一、创建Maven项目 1. File -> New -> Projects... 2. 选择Maven&#xff0c;点击Next 3. 输入项目名称&#xff0c;Name: WebDemo3。点击 Finish&#xff0c;生成新的项目 二、添加框架支持 1. 在项目名上右键&#xff0c;选择 A…

关于我的网页如何突然进入到2G时代

网页突然只有文字&#xff0c;图片根本显示不了。我只有拨打了10086的官方客服人员。后期我直接联系了移动工程师。在他的登录页面以及重启页面过后。整个光猫又进行了重启。最后实现了网络重回3G时代。 我想说明的是&#xff0c;光猫又存储器和主要的芯片。这里涉及到的问题是…

MySQL Server层的 max_connections 和引擎层的 innodb_thread_concurrency

MySQL 数据库服务端是由 Server 层 和 引擎层组成 Server 层包括连接器、查询缓存、分析器、优化器、执行器等&#xff0c;涵盖 MySQL 的大多数核心服务功能&#xff0c;以及所有的内置函数&#xff08;如日期、时间、数学和加密函数等&#xff09;&#xff0c;所有跨存储引擎…

Cannot find module ‘core-js/modules/es6.regexp.constructor‘

npm run dev 之后报如下错误 解决方法&#xff1a;npm install core-js2 如果超时或者下载时间慢可以尝试 用cnpm install core-js2

AFFiNE:下一代全能知识库工具

安装使用 AFFiNE 最简单的方法是使用 Docker 一键启动&#xff1a; docker pull ghcr.io/toeverything/affine:nightly-latest docker run -p 4200:3000 --name affine -d ghcr.io/toeverything/affine:nightly-latest 然后在浏览器中打开 http://localhost:4200 即可。 可…

windows 深度学习环境部署

1. 根据显卡配置安装适合的CUDA,查看显卡配置可在显卡控制面板上查看,安装是否成功可通过nvidia-smi查看&#xff1b;注意安装路径 https://developer.nvidia.com/cuda-toolkit-archive 2. 根据cuda安装合适的cudnn&#xff0c;需要注册NVIDIA cuDNN Archive | NVIDIA Devel…