跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++

C++ 发展与程序创建

综述由AI生成介绍 C++ 发展历史与程序创建流程。C++ 基于 C 语言,支持面向对象和泛型编程。内容包括 C 语言背景、面向过程与面向对象区别、泛型编程概念及 C++ 起源。此外详述了 C++ 程序创建步骤,涉及源代码编写、编译(如 Linux 下 g++)及链接生成可执行文件的过程。

二进制发布于 2026/3/25更新于 2026/5/2825 浏览

C++ 在 C 语言的基础上添加了面向对象编程和泛型编程的支持,它继承了 C 语言的特性,又具备全新的编程方法(如果你之前是个 C 语言高手,那么当你学习 C++ 时就需要改变或摒弃原来 C 语言的一些编程习惯)。

C++ 简史

C 语言

20 世纪 70 年代初,Dennis Ritchie 致力于开发 UNIX 操作系统,他需要一种可以生成简洁又快速的程序、可以控制硬件的语言。

汇编语言可以满足 Dennis 的要求,它是低级语言,直接操纵硬件。但是操作系统需要在不同的计算机上运行,每个计算机的硬件又有所不同,汇编语言直接针对硬件,同样一段的汇编程序并不能通用到所有计算机上,但是针对不同硬件编写汇编程序好像也不太现实。

高级语言专注于解决问题,而不是针对特定的硬件,编译器可以将高级语言翻译成机器语言供计算机执行。Dennis 需要低级语言的效率、硬件控制能力,又需要高级语言的通用性和可移植性,所以发明了 C 语言。

C 语言的面向过程编程

计算机程序涉及到两个概念:数据和算法。数据是程序使用、处理的信息;算法是程序使用的方法。

C 语言是面向过程的编程,更多强调算法,也就是先确定计算机要采取的操作然后编程实现它们。它同时使用结构化编程(如:循环语句、条件语句等)和自顶向下的设计(将大型程序分解成小型任务),便于更好地编写程序。

面向对象编程

面向对象编程相比于面向过程编程,强调的是数据,让语言适配于问题(根据问题创建相应的数据格式)。C++ 中,类描述数据的格式,对象是根据类所构造的特定数据。类规定了可使用的数据以及这些数据可执行的操作,OOP 先定义类(低级组织),然后创建使用类的对象(高级组织),这就是自下而上的编程。

C++ 专注于问题的表示而不是解决方式,它可以使用、修改已有的代码,大大减少了程序员的工作量。

泛型编程

泛型编程的目标也是复用代码和抽象通用概念,但它相对于 OOP 强调独立于特定数据类型,一般提供执行常见任务的工具。

泛型编程需要对语言进行扩展,以便只编写一个函数就可以应用到各个类型。

C++ 起源

20 世纪 80 年代初,Bjarne Stroustrup 在贝尔实验室发明了 C++ 语言,他更关心编程语言的实用性而不是其原理、风格,他在 C 语言的基础上添加了 OOP 特性和泛型编程,所以 C++ 是 C 的超集,任何有效的 C 程序都是有效的 C++ 程序。

可移植性和标准

可移植性面对两个问题:硬件和语言。硬件特定的程序是不可移植的,应避免;类似于人的语言,计算机语言也可以有方言,ANSI / ISO 致力于制定 C++ 标准。

C++ 程序的创建

C++ 程序运行步骤:

  1. 使用文本编辑器编写程序(源代码),保存;
  2. 编译,将源代码翻译成机器语言,生成的文件就是程序的目标代码;
  3. 将目标代码同其他代码(目标代码所使用的函数的目标代码和标准启动代码)链接起来,生成可执行代码。

创建源代码文件

C++ 实现可以在 IDE 上进行,有的只能在命令行进行(这种情况可以使用任何文本编辑器创建、修改源码)。对源代码文件命名时,要使用正确的后缀(扩展名),以将文件标识为 C++ 文件。使用什么后缀取决 C++ 实现,如:Microsoft Visual C++ 是 cpp, cxx, cc.

编译和链接

C++ 一开始的编译是靠 cfront 实现的,它将 C++ 语言翻译成 C 语言再由 C 语言的编译器继续编译。C++ 越发普及,更多实现也倾向于直接创建 C++ 编译器。下面介绍 Linux 和 Windows 的编译机理。

Linux 最常用的编译器是 g++,多数版本都有。假定源代码文件名是 myfile.cpp,输入下述代码:

g++ myfile.cpp

便会生成可执行文件 a.out.

目录

  1. C++ 简史
  2. C 语言
  3. C 语言的面向过程编程
  4. 面向对象编程
  5. 泛型编程
  6. C++ 起源
  7. 可移植性和标准
  8. C++ 程序的创建
  9. 创建源代码文件
  10. 编译和链接
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • CentOS 7 环境下安装 JDK 1.8 及解决 wget 命令缺失问题
  • C++ 插入排序算法原理与实现
  • Eclipse 3.7 字体显示过小问题的修复方案
  • Kratos 主题 SMTP 配置:实现博客评论邮件通知
  • Python 中星号 (*) 运算符的全面用法解析
  • Neo4j 在 Windows 上的安装与配置指南
  • SDMatte 服务 SLA 保障方案:99.5% 可用性承诺下的监控告警与应急响应
  • 基于 uni-app+Vue3+DeepSeek 的跨端 AI 流式对话系统模板
  • 网络通信与 TCP/IP 五层模型
  • SharpaWave 视觉基触觉手量产,0.005N 超敏感知与模块化设计
  • AI 大模型应用开发:体系化学习路线与实战指南
  • 数据结构入门:插入排序与希尔排序详解
  • 2026 年知网 AIGC 检测算法升级要点解析
  • SpringBoot 整合 Langchain4j 对接主流大模型实战
  • Python ValueError: math domain error 常见原因与修复方案
  • FPGA 摄像头到屏幕完整链路:从 OV5640 采集到 HDMI 实时显示
  • Python 操作 Word 文档入门与实战指南
  • 企业电子招标采购管理系统功能与技术架构
  • 使用 LLaMA-Factory 训练 LLM 大模型并用 Ollama 调用
  • Windows 7 编译运行 llama.cpp 部署 Qwen3 模型

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online