当前位置: 首页 > article >正文

C++基础介绍及关键字

目录

概述

一. C语言

二. 面向对象编程

三. C++和泛型编程

四. C++起源

五. 编程相关

5.1 C/C++编程的步骤

5.2 源代码文件的扩展名

5.3 Unix编译和链接

5.4 Linux编译和链接

5.5 windows命令行编译器

六. 其他基础介绍

6.2 头文件名

6.3 关键字


概述

C++融合了3种不同的编程方式:C语言代表的过程性(procedural)语言、C++在C语言基础上添加的类代表的面向对象语言(OOP,Object Oriented Programming)、C++模板支持的泛型编程(Generic Programming)

一. C语言

20世纪70年代早期,贝尔实验室的Dennis Ritchie致力于开发UNIX操作系统。为了完成这项工作,Ritchie需要一种语言,它必须简洁,能够生成简洁、快速的程序,并能有效地控制硬件。传统上,程序员使用汇编语言来满足这些需求,汇编语言依赖于计算机的内部机器语言,它属于低级语言(low-level),即直接操作硬件。一旦更换硬件,就需要不同的汇编语言重新编写程序。于是,Ritchie在旧语言的基础上开发了C语言。

C语言是一种结构性语言,它包含了for循环、while循环和if else等语句,它的原则是自顶向下(top-down),它鼓励程序员开发程序单元(函数)来表示各个任务模块。

二. 面向对象编程

虽然结构化编程的理念提高了程序的清晰度、可靠性,并使之便于维护,但它在编写大型程序时,仍面临着挑战,于是OOP应运而生。过程性编程强调算法,OOP强调的是数据。

OOP程序设计方法首先设计类。在C++中,类是一种规范,它描述了这种新型数据格式,对象是根据这种规范构造的数据结构。

三. C++和泛型编程

泛型编程(Generic Programming)是C++支持的另一种编程模式。它与OOP的目标相同,即使得重用代码和抽象通用概念的技术更简单。不过OOP强调的是编程的数据,而泛型编程强调的是独立于特定数据类型。泛型编程需要对语言进行扩展,以便可以只编写一个泛型函数(而不是特定类型的函数),并将其用于各种实际类型。C++模板提供了完成这种任务的机制。

四. C++起源

与C语言一样,C++也是在贝尔实验室诞生的,Bjarne Stroustrup于20世纪80年代在这里开发了这种语言。他是权威参考手册《The C++ Programming Language》和《The design and Evolution of C++》的作者。

ANSI/ISO经过多年的努力,制定了一个国际标准ISO/IEC 14882:1998,该标准被称为C++98。该标准还在已有的C++特性基础上,对它进行了扩展,添加了异常、运行阶段类型识别(RTTI)、模板和标准模板库(STL)。

2003年,发布了C++标准(ISO/IEC 14882:2003),这个版本被称为C++03。C++03并没有改变语言特性,因此我们使用C++98表示C++98/C++2003。

ISO标准委员会2001年8月批准了新标准ISO/IEC 14882:2011,它称为C++11。它增加了一些新特性。该版本还曾被称为C++0x。

五. 编程相关

5.1 C/C++编程的步骤

处理过程说明:

预处理器,处理宏定义,条件编译指令,头文件指令等。包含到c源程序中的头文件可以是系统提供的,这些头文件一般被放在/usr/include目录下,也可以是用户自己提供的。

编译器,所要作得工作就是通过词法分析和语法分析,在确认所有的指令都符合语法规则之后,将其翻译成等价的中间代码表示或汇编代码。

汇编器,实际上指把汇编语言代码翻译成目标机器指令的过程

链接器,是将目标代码同使用的函数的目标代码以及一些启动代码组合起来,生成程序的运行阶段版本。

5.2 源代码文件的扩展名

C++实现 源代码扩展名

UNIX C、cc、cxx、c

GNU C++ C、cc、cxx、cpp、c++

Microsoft Visual C++ cpp、cxx、cc

5.3 Unix编译和链接

UNIX使用CC来编译程序,但是1993年之后就没有再更新。当今的UNIX计算机可能没有编译器、有专用的编译器或第三方编译器,例如GNU g++。它的编译命令为:

CC my.C precious.C

它编译完之后会生成.o文件,随后将由编译器自动将目标文件传递给系统链接程序,生成可执行文件a.out。

如果我们只修改了my.C文件,我们还可以使用下列命令:

CC my.C precious.o

5.4 Linux编译和链接

Linux系统中最常用的编译器是g++,它来自于Free Software Foundation的GNU C++编译器。Linux的多数版本都包括该编译器,但并不一定会安装它。g++编译器的工作方式和标准UNIX编译器很像。例如。

g++ my.cxx precious.cxx

这将生成一个名为a.out的可执行文件和两个目标代码文件my.o和precious.o。如果接下来修改了其中的my.cxx。则可以使用下列命令进行编译。

g++ my.cxx precious.o

5.5 windows命令行编译器

Cygwin和MinGW都包含编译器GNU C++,且可免费下载,他们使用的编译器名为g++。要使用g++编译器,首先需要打开一个命令提示窗口。启动程序Cygwin和MinGW时,他们将自动为您打开一个命令提示符窗口。它的编译命令如下:

g++ great.cpp

如果编译成功,则得到可执行文件名为a.exe

六. 其他基础介绍

6.1 注释

//单行注释,C++风格注释

/*

多行注释

C风格注释

*/

6.2 头文件名

以下列头文件举例,头文件的作用是将iostream文件的内容取代程序中的代码行#include<iostream>。

#include<iostream>

头文件命名约定:

头文件类型 约定 实例 说明

C++旧式风格 以.h结尾 iostream.h C++程序可以使用

C旧式风格 以.h结尾 math.h C、C++程序可以使用

C++新式风格 没有扩展名 iostream C++程序可以使用,使用namsspace std

转换后的C 加上前缀C,没有扩展名 cmath C++程序可以使用,可以使用不是C的特性,如namespace std

注意如果使用iostream,而不是iostream.h,则应使用下面的名称空间编译指令来使iostream中的定义对程序可用:

using namespace std

头文件还可以使用一些特殊的扩展名(如.hpp或.hxx)

6.3 关键字

 


http://www.kler.cn/a/156363.html

相关文章:

  • Autosar CP DDS规范导读
  • Linux设置Nginx开机启动
  • EasyExcel 使用多线程按顺序导出数据
  • idea的mapper.xml文件里写sql语句出现Tag name expected错误提示
  • 论软件维护及其应用子问题
  • Redis主从复制(replication)
  • PHPExcel 导出Excel报错:PHPExcel_IOFactory::load()
  • 分享74个节日PPT,总有一款适合您
  • 【部署】Deploying Trino on linux
  • C++ string类(2)—成员访问、插入、删除、替换、查找和交换操作
  • 免费数据采集软件,多种数据采集方式
  • centos 源码编译gcc10.2
  • Vue框架学习笔记——列表渲染:v-for
  • python——多线程的相关知识点总结
  • Golang数据类型(数字型)
  • 风变科技千万营收的AIGC项目,在Fanbook成功落地,专访风变科技CMO江育麟
  • 创建Asp.net MVC项目实现视图页面数据传值显示
  • leetCode 39.组合总和 + 回溯算法 + 剪枝 + 图解 + 笔记
  • minio服务端搭建使用
  • 智能手表上的音频(四):语音通话
  • ROS-ROS通信机制-话题通信
  • 免费的SEO外链发布工具,提升排名的利器
  • springboot集成springsecurity
  • Web3之L2 ZK-Rollup 方案-StarkNet
  • 怎样使用rtsp,rtmp摄像头低延时参于Web视频会议互动直播
  • 网工学习9-STP配置(二)