C++ 教程(01)

news2024/11/24 4:18:54

C++ 教程

C++ 是一种高级语言,它是由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言。C++ 可运行于多种平台上,如 Windows、MAC 操作系统以及 UNIX 的各种版本。

本教程通过通俗易懂的语言来讲解 C++ 编程语言。

 

编译/执行 C++ 程序

实例

#include <iostream>

using namespace std;

int main()

{ cout << "Hello, world!" << endl;

return 0; }

你可以用 "\n" 代替以上代码里的 endl。

实例

#include <iostream>

using namespace std;

int main()

{ cout << "Hello, world!" << "\n";

return 0; }

C++ 简介

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

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

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

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

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

 

面向对象程序设计

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++标准

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/624582.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

节省90%编译时间,这是字节跳动开源的基于Rust的前端构建工具

Rspack 是一个基于 Rust 的高性能构建引擎&#xff0c;它可以与 Webpack 生态系统交互&#xff0c;并提供更好的构建性能。 在处理具有复杂构建配置的巨石应用时&#xff0c;Rspack 可以提供 5~10 倍的编译性能提升。 字节跳动将 Rspack 开源后&#xff0c;它在 GitHub 上已有 …

Bert+FGSM/PGD实现中文文本分类(Loss=0.5L1+0.5L2)

任务目标&#xff1a;在使用FGSM/PGD来训练Bert模型进行文本分类&#xff0c;其实现原理可以简单概括为以下几个步骤&#xff1a; 对原始文本每个词转换为对应的嵌入向量。将每个嵌入向量与一个小的扰动向量相加&#xff0c;从而生成对抗样本。这个扰动向量的大小可以通过一个超…

2023年牛客网最新版大厂Java八股文面试题总结(覆盖所有面试题考点)

程序员真的是需要将终生学习贯彻到底的职业&#xff0c;一旦停止学习&#xff0c;离被淘汰&#xff0c;也就不远了。 金九银十跳槽季&#xff0c;这是一个千年不变的话题&#xff0c;每到这个时候&#xff0c;很多人都会临阵磨枪&#xff0c;相信不快也光。于是&#xff0c;大…

多业务线下,IT企业如何应对市场经济下行危机?

多业务线下&#xff0c;IT企业如何应对市场经济下行危机&#xff1f; 市场经济下行就像是一辆行驶的车子遇到了坡道&#xff0c;速度开始变慢甚至停下来。在这个情况下&#xff0c;经济的增长变得较为缓慢&#xff0c;消费减少&#xff0c;投资减少&#xff0c;也对企业会带来…

运筹说 第25期 | 对偶理论经典例题讲解

对偶理论是研究线性规划中原始问题与对偶问题之间关系的理论&#xff0c;主要研究经济学中的相互确定关系&#xff0c;涉及到经济学的诸多方面。产出与成本的对偶、效用与支出的对偶&#xff0c;是经济学中典型的对偶关系。 对偶理论中最有力的武器是影子价格&#xff0c;影子…

【MySQL】主从复制部署

文章目录 概述SQL数据库的三大范式 主从复制技术产生原因主从形式原理图主节点 binary log dump 线程从节点I/O线程作用从节点SQL线程作用 复制过程复制模式异步模式&#xff08;mysql async-mode&#xff09;半同步模式(mysql semi-sync)全同步模式 复制机制binlog记录模式GTI…

android frida检测绕过

Frida检测是一种常见的安卓逆向技术&#xff0c;常用于防止应用程序被反向工程。如果您遇到了Frida检测&#xff0c;您可以尝试以下方法来绕过它&#xff1a; 使用Magisk Hide模块&#xff1a;Magisk是一个强大的安卓root工具&#xff0c;它附带了一个Magisk Hide模块&#xff…

二阳大规模来袭,热图地图分析新冠疫情期间的高发地点,掌握防控重点!

一、概述 最近&#xff0c;新冠疫情似乎又要“卷土重来”... 身边逐渐有人传来“二阳”或者“三羊”的消息&#xff0c;网上相关的讨论和报道也变得越来越多。 据「钟南山院士」在大湾区科学论坛上的发言&#xff0c;预测模型seirs显示&#xff0c;第二波新冠疫情已于4月中旬开…

当数据汇聚成海,Excel 表成为我们的航海图,如何在茫茫数据中找到目标?——Excel 表中某个范围内的单元格遍历思路

本篇博客会讲解力扣“2194. Excel 表中某个范围内的单元格”的解题思路&#xff0c;这是题目链接。 先来审题&#xff1a; 以下是输出示例和提示&#xff1a; 这道题的解题思路是&#xff1a;模拟&#xff0c;遍历每一列&#xff0c;某一列遍历完后遍历下一列。 下面我们需…

爆肝整理,性能测试-全链路压测与普通压测区别总结,进阶高级测试...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 抛出一个问题&…

Shell脚本:expect脚本免交互

Shell脚本&#xff1a;expect脚本免交互 expect脚本免交互 一、免交互基本概述&#xff1a;1.交互与免交互的区别&#xff1a;2.格式&#xff1a;3.通过read实现免交互&#xff1a;4.通过cat实现查看和重定向&#xff1a;5.变量替换&#xff1a; 二、expect安装&#xff1a;1.…

Docker Registry部署

之前执行 docker pull的命令都是从 docker hub上拉取的&#xff0c;是docker 公共仓库&#xff0c;如果在公司中使用docker&#xff0c;我们不可能把自己的镜像上传到公共仓库&#xff0c;这个时候就需要一个自己的仓库&#xff08;私有仓库&#xff09;&#xff0c;在局域网之…

usb 驱动

usb 驱动 usb 的基本概念 这个忽略&#xff0c; 基本上usb 是啥都知道 usb 的拓扑结构 usb 是一种主从结构的系统 usb主机由usb主控之器&#xff08;Host Controller)和根集线器&#xff08;Root Hub&#xff09; 构成 usb 主控制器&#xff1a; 主要负责数据处理(就是我…

微信怎么批量自动添加好友?

如何批量加客户资源到微信&#xff0c;怎么加微信好友&#xff0c;这个基本上熟悉的人都会知道。 实际上&#xff0c;你知道所有添加微信好友的方式吗&#xff1f;或者说&#xff0c;你知道如何批量加客户微信吗&#xff1f; 比如说在一定时间内&#xff0c;把你所有的客户资…

AIGC文本生成智能应用(ChatGPT)提示工程师技巧

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天来看一下AIGC文本生成智能提示工程师技巧。 当你在使用类似于ChatGPT这样的AIGC文本生成智能应用时&#xff0c;有没有想过&#xff0c;你所问的问题中的每一个词语对AIGC文本生成智能应用给你的回答的好…

记忆的助记器|如何使用联想记忆法

联想记忆法&#xff0c;也被称为记忆宫殿技术&#xff0c;已经使用了数千年&#xff0c;其记录可以追溯到古罗马和希腊。虽然现代第二大脑工具抢走了它的一些人气&#xff0c;但联想记忆法仍然是最有效的记忆方法之一。下面是你为什么需要在你的知识管理系统中使用它。 什么是…

比较快捷的设置第三方app 有系统权限和签名

1. app 里面添加 android:sharedUserId"android.uid.system" 2.编译出app.apk ,拷贝到源码目录 里面有很多签名文件 build\target\product\security 3. 拷贝签名工具到这个目录 签名工具原目录 out/host/linux-x86/framework/signapk.jar 4.拷贝需要的库文件到这…

Retry重试机制(五十)

当新的世界出现&#xff0c;请立即向他奔去 上一章简单介绍了Melody 监控(四十九), 如果没有看过,请观看上一章 本章节文章参考: https://juejin.cn/post/7234107489390116925 https://blog.csdn.net/hongyuan19/article/details/118995696 一. 重试 一.一 什么是重试 重…

身份证信息查看 案例

7-14位&#xff1a;出生年、月、日 17位&#xff1a;性别&#xff08;奇数男性、偶数女性&#xff09; 人物信息为&#xff1a;出生年月日&#xff1a;XXXX年X月X日 性别为&#xff1a;男/女 /** Copyright (c) 2017, 2023, zxy.cn All rights reserved.**/ package cn.str…

做了大半年软测,上班接触不到技术性的东西,是在浪费时间吗?

最近接到粉丝私信&#xff0c;苦恼目前的工作状态&#xff1a; 来这个公司大半年&#xff0c;现在主要做的是类似于淘宝的购物商城&#xff0c;以前也做应用系统什么的&#xff0c;可是感觉公司的软件测试岗位都是不着边的&#xff0c;因为做的都是功能测试&#xff0c;来了这么…