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

C++ 简介

目录

面向对象程序设计

标准库

ANSI 标准

学习 C++

C++ 的使用

标准化


C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。

C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。

C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++。

C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。

注意:使用静态类型的编程语言是在编译时执行类型检查,而不是在运行时执行类型检查。

#include <iostream>
using namespace std;
int main()
{cout << "Hello, world!" << endl;return 0;
}

面向对象程序设计

C++ 完全支持面向对象的程序设计,包括面向对象开发的四大特性:

  • 封装(Encapsulation):封装是将数据和方法组合在一起,对外部隐藏实现细节,只公开对外提供的接口。这样可以提高安全性、可靠性和灵活性。

  • 继承(Inheritance):继承是从已有类中派生出新类,新类具有已有类的属性和方法,并且可以扩展或修改这些属性和方法。这样可以提高代码的复用性和可扩展性。

  • 多态(Polymorphism):多态是指同一种操作作用于不同的对象,可以有不同的解释和实现。它可以通过接口或继承实现,可以提高代码的灵活性和可读性。

  • 抽象(Abstraction):抽象是从具体的实例中提取共同的特征,形成抽象类或接口,以便于代码的复用和扩展。抽象类和接口可以让程序员专注于高层次的设计和业务逻辑,而不必关注底层的实现细节。

标准库

标准的 C++ 由三个重要部分组成:

  • 核心语言,提供了所有构件块,包括变量、数据类型和常量,等等。
  • C++ 标准库,提供了大量的函数,用于操作文件、字符串等。
  • 标准模板库(STL),提供了大量的方法,用于操作数据结构等。

ANSI 标准

ANSI 标准是为了确保 C++ 的便携性 —— 您所编写的代码在 Mac、UNIX、Windows、Alpha 计算机上都能通过编译。

由于 ANSI 标准已稳定使用了很长的时间,所有主要的 C++ 编译器的制造商都支持 ANSI 标准。

学习 C++

学习 C++,关键是要理解概念,而不应过于深究语言的技术细节。

学习程序设计语言的目的是为了成为一个更好的程序员,也就是说,是为了能更有效率地设计和实现新系统,以及维护旧系统。

C++ 支持多种编程风格。您可以使用 Fortran、C、Smalltalk 等任意一种语言的编程风格来编写代码。每种风格都能有效地保证运行时间效率和空间效率。

C++ 的使用

C++ 语言在许多行业和领域都有广泛应用,包括:

  • 游戏开发:C++ 是游戏开发领域中最常用的编程语言之一,因为它具有高效的性能和直接控制硬件的能力。许多主要的游戏引擎,如 Unreal Engine 和 Unity,都使用 C++ 编写。

  • 嵌入式系统开发:C++ 可以在嵌入式系统中发挥重要作用,如智能手机、汽车、机器人和家电等领域。由于嵌入式系统通常具有严格的资源限制和实时要求,因此 C++ 的高效性能和内存控制功能非常有用。

  • 金融领域:C++ 在金融领域中被广泛应用,如高频交易、算法交易和风险管理等领域。由于这些应用程序需要高效的性能和对硬件的直接控制,C++ 语言是一个合适的选择。

  • 图形图像处理:C++ 可以用于开发图形和图像处理应用程序,如计算机视觉、计算机图形学和人工智能领域。由于这些应用程序需要高效的计算能力和对硬件的控制,因此 C++ 是一个很好的选择。

  • 科学计算和数值分析:C++ 可以用于开发科学计算和数值分析应用程序,如数值模拟和高性能计算等领域。由于这些应用程序需要高效的计算能力和对硬件的直接控制,C++ 语言是一个很好的选择。


标准化

发布时间通称备注
2020C++20, C++2aISO/IEC 14882:2020
2017C++17第五个C++标准
2017coroutines TS协程库扩展
2017ranges TS提供范围机制
2017library fundamentals TS标准库扩展
2016concurrency TS用于并发计算的扩展
2015concepts TS概念库,用于优化编译期信息
2015TM TS事务性内存操作
2015parallelism TS用于并行计算的扩展
2015filesystem TS文件系统
2014C++14第四个C++标准
2011-十进制浮点数扩展
2011C++11第三个C++标准
2010-数学函数扩展
2007C++TR1C++技术报告:库扩展
2006-C++性能技术报告
2003C++03第二个C++标准
1998C++98第一个C++标准

相关文章:

C++ 简介

目录 面向对象程序设计 标准库 ANSI 标准 学习 C C 的使用 标准化 C 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言&#xff0c;支持过程化编程、面向对象编程和泛型编程。 C 被认为是一种中级语言&#xff0c;它综合了高级语言和低级语言的特点…...

shardingjdbc分库分表原理

一 Mysql的瓶颈 二 解决方案 三 hash环算法 四 雪花算法...

C++泛型编程:模版

引言 泛型编程&#xff08;Generic Programming&#xff09;是一种编程范式&#xff0c;允许编写与类型无关的代码&#xff0c;从而使程序更加灵活和可重用。在C中&#xff0c;泛型编程主要通过模板&#xff08;Templates&#xff09;来实现。模板使得我们可以编写通用…...

一道涉及 Go 中的并发安全和数据竞态(Race Condition)控制的难题

这是一道涉及 Go 中的并发安全和数据竞态&#xff08;Race Condition&#xff09;控制的难题。 问题描述&#xff1a; 你需要实现一个并发安全的计数器 SafeCounter&#xff0c;该计数器允许多个 Goroutine 同时对其进行读写操作。计数器会存储每个键的计数值。 具体要求&am…...

如何降低H5商城系统的开发成本

前言 H5商城系统通过多种策略来降低开发成本。以下是对这些策略的详细介绍&#xff1a; 一、选择合适的开发平台 原生开发与跨平台开发&#xff1a;原生开发使用HTML5、CSS3和JavaScript等Web技术&#xff0c;虽然性能更佳、用户体验更好&#xff0c;但开发成本相对较高。而…...

为什么越来越多的网工运维转行网络安全?_idc运维转网络安全工程师_系统运维转行网安

最近越来越多的网工运维小伙伴都在吐槽&#xff1a;干网工、运维多年&#xff0c;薪资还是5.6K&#xff0c;技术也遇瓶颈上不去&#xff0c;考虑转岗或者转行。其中大部分的网工运维小伙伴们纷纷瞄准了高薪高前景的网络安全工程师岗位 网络安全是怎样的岗位&#xff1f; 网络安…...

【TabBar嵌套Navigation案例-产品推荐页面-UICollectionView-结合xib使用 Objective-C语言】

一、接下来,我们来说这个产品推荐页面 1.首先呢,它是一个CollectionViewController,当我点击这个产品推荐的时候, 这个Cell的时候,我要跳到一个CollectionViewController, 所以呢,我们需要先找到产品推荐,然后给它去添加一个targetVC,然后给它push到一个产品推荐的页面…...

java.nio.ByteBuffer的 capacity, limit, position, mark

java.nio.ByteBuffer的 capacity, limit, position, mark Capacity&#xff08;容量&#xff09; 定义&#xff1a;缓冲区的总容量&#xff0c;即缓冲区中可以容纳的元素的数量。这个容量在缓冲区创建时被设定&#xff0c;并且之后不能被改变。 用途&#xff1a;它定义了缓冲区…...

握手传输 状态机序列检测(记忆科技笔试题)_2024年9月2日

发送模块循环发送0-7&#xff0c;在每个数据传输完成后&#xff0c;间隔5个clk&#xff0c;发送下一个 插入寄存器打拍处理&#xff0c;可以在不同的时钟周期内对信号进行同步&#xff0c;从而减少亚稳态的风险。 记忆科技笔试题&#xff1a;检测出11011在下一个时钟周期输出…...

电商跨境电商商城系统/网上商城接口/电商数据接口详情

电商API接口背景&#xff1a;电商运营中&#xff0c;数据分析这项工作越来越重要&#xff0c;许多品牌方也越来越热衷去做电商数据分析。不过&#xff0c;全面的数据该如何获取呢&#xff0c;此时&#xff0c;电商数据接口的重要性便凸显出来了。 电商API数据接口主要有以下特…...

openFrameworks_如何使用ofxXmlSettings和ofxGui来创建识别界面

效果图&#xff1a; 代码及详解 1.添加两个插件的头文件: #include "ofxGui.h" #include "ofxXmlSettings/src/ofxXmlSettings.h" 2.添加GUI部分&#xff0c;然后在.h声明右边的openframeworks的UI部分&#xff0c;包括面板ofxPanel&#xff0c;按钮ofx…...

180多个GIS地理空间定义术语中英文对照配图

主动传感器&#xff08;Active Sensors&#xff09;&#xff1a; [遥感]主动传感器照亮其目标&#xff0c;并测量返回到传感器的反射后向散射。 邻接&#xff08;Adjacency&#xff09;&#xff1a; [几何]邻接发生在两个对象共享同一边界&#xff0c;并且与公共边或顶点相邻…...

Vue(14)——组合式API①

setup 特点&#xff1a;执行实际比beforeCreate还要早&#xff0c;并且获取不到this <script> export default{setup(){console.log(setup函数);},beforeCreate(){console.log(beforeCreate函数);} } </script> 在setup函数中提供的数据和方法&#xff0c;想要在…...

【图像检索】基于颜色模型的图像内容检索,matlab实现

博主简介&#xff1a;matlab图像代码项目合作&#xff08;扣扣&#xff1a;3249726188&#xff09; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本次案例是基于颜色模型的图像内容检索&#xff0c;用matlab实现。 一、案例背景和算法介绍 这…...

看过来——量子计算中一个神奇符号的解释

量子计算中一个神奇符号是 H ⊗ n \mathcal{H}^{\otimes n} H⊗n 它代表什么呢&#xff0c; 往下看 H ⊗ n \mathcal{H}^{\otimes n} H⊗n 通常在量子力学中表示 n次张量积的希尔伯特空间。 H \mathcal{H} H 表示一个希尔伯特空间&#xff0c;这是量子力学中描述量子态的空间&…...

传输层 IV(TCP协议——流量控制、拥塞控制)【★★★★】

&#xff08;★★&#xff09;代表非常重要的知识点&#xff0c;&#xff08;★&#xff09;代表重要的知识点。 一、TCP 流量控制&#xff08;★★&#xff09; 1. 利用滑动窗口实现流量控制 一般说来&#xff0c;我们总是希望数据传输得更快一些。但如果发送方把数据发送得…...

Java设计模式全面解析

23大设计模式&#xff08;即软件设计中的24种常用设计模式&#xff09;源自《设计模式&#xff1a;可复用面向对象软件的基础》一书&#xff0c;由四位作者&#xff08;Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides&#xff09;提出&#xff0c;通常也被称为“Go…...

spring全家桶使用教程

Spring 全家桶是指围绕 Spring 框架构建的一系列子项目和工具&#xff0c;涵盖了企业级应用开发的多个方面&#xff0c;如依赖注入、数据访问、事务管理、Web 开发、消息队列、云服务等。通过 Spring 全家桶&#xff0c;开发者可以构建从简单的 Web 应用到复杂的微服务架构。 …...

REST-系统架构师(六十九)

1某公司内部的信息系统集成&#xff0c;需要实现在系统之间快速传递可定制格式的数据包&#xff0c;并且当有新的数据包到达时候&#xff0c;接收系统会自动得到通知。另外还要支持数据重传&#xff0c;以确保传输的成功。针对这些需求&#xff0c;应该采用&#xff08;&#x…...

SAP B1 营销单据 - 复制从复制到总结

背景 营销单据具有相似的表单结构&#xff0c;并且单据之间可互相复制&#xff0c;本文总结出各个单据可【复制从】与【复制到】的单据清单&#xff0c;并绘制流程图&#xff0c;表现理论上可完成的流程。 销售&#xff1a;销售报价单&#xff1b;销售订单&#xff1b;交货&am…...

css设置overflow:hiden行内元素会发生偏移的现象

父级元素包含几个行内元素 <div id"box"><p><span>按钮</span><span>测试文字文字文字测试文字文字文字</span><span>看这里</span></p></div>#box p{width: 800px;font-size: 30px;}#box p span{disp…...

使用多个 GitHub 账号的 SSH 配置与常见问题排查

文章目录 使用多个 GitHub 账号的 SSH 配置与常见问题排查摘要目录1. 使用多个 GitHub 账号的场景介绍2. 配置多个 SSH 密钥2.1 生成多个 SSH 密钥2.2 添加 SSH 密钥到 SSH 代理2.3 将 SSH 公钥添加到 GitHub 账户 3. 配置 SSH 代理与 GitHub 账户的关联3.1 为不同仓库设置不同…...

sql语法学习

学习 SQL&#xff08;Structured Query Language&#xff09;语法是数据库开发的基础&#xff0c;主要用于数据库的管理和操作。以下是 SQL 的基本语法和常用操作&#xff0c;涵盖数据查询、插入、更新、删除等。 1. 数据库基础 数据库&#xff1a;存储表和数据的集合。表&am…...

滚雪球学SpringCloud[5.3讲]: 配置管理中的高可用与容错

全文目录&#xff1a; 前言高可用配置中心的搭建为什么需要高可用配置中心&#xff1f;多实例与负载均衡数据一致性实战示例&#xff1a;使用Nginx实现高可用配置中心 Spring Cloud Config中的高可用性高可用性的进一步优化 配置管理中的故障处理策略分布式系统中的常见故障故障…...

电商安全新挑战:筑起数字防御长城,守护业务与数据安全

在当今这个数字化时代&#xff0c;电商行业正以前所未有的速度发展&#xff0c;大数据、人工智能等技术的融入不仅重塑了消费模式&#xff0c;更激发了行业新的增长点。然而&#xff0c;这片繁荣景象之下&#xff0c;隐藏着一个不容忽视的暗流——网络安全威胁。从数据泄露到恶…...

Python 单元测试:深入理解与实战应用20240919

Python 单元测试&#xff1a;深入理解与实战应用 引言 在动态语言如 Python 中&#xff0c;代码的灵活性和动态特性使得开发效率大大提升&#xff0c;但也带来了潜在的风险&#xff1a;小的改动可能导致不可预见的功能失效。因此&#xff0c;确保代码逻辑的正确性和稳健性至关…...

二、MySQL环境搭建

文章目录 1. MySQL的卸载步骤1&#xff1a;停止MySQL服务步骤2&#xff1a;软件的卸载步骤3&#xff1a;残余文件的清理步骤4&#xff1a;清理注册表&#xff08;选做&#xff09;步骤5&#xff1a;删除环境变量配置 2. MySQL的下载、安装、配置2.1 MySQL的4大版本2.2 软件的下…...

mongoDB 读取数据python版本实现

要使用Python从MongoDB读取数据&#xff0c;你可以使用pymongo库。首先确保你已经安装了pymongo&#xff0c;如果没有安装&#xff0c;可以通过pip来安装它&#xff1a; pip install pymongo 接下来&#xff0c;我将展示如何使用给定的MongoDB连接字符串来连接数据库&#xff…...

java Nio的应用

Java NIO&#xff08;New Input/Output&#xff09;是Java 1.4引入的一种非阻塞I/O模型&#xff0c;适用于高性能和高并发的应用程序。以下是NIO的一些主要应用场景和特点&#xff1a; 1. 非阻塞I/O NIO支持非阻塞模式&#xff0c;这意味着线程可以在I/O操作进行时继续执行其…...

双十一有什么好物推荐?值得入手的五款产品

随着双十一狂欢的号角日益临近&#xff0c;这个一年一度的购物盛典即将拉开帷幕&#xff01;为了让大家在海量的商品中精准定位&#xff0c;圆圆用心整理了一份购物清单&#xff0c;分享那些我亲身试用过&#xff0c;觉得超级值得购买的好物。 这些商品不但价格亲民&#xff0…...