初识C++以及安装C++学习工具

news2024/12/24 7:43:48

C++的发展史

C++是由Bjarne Stroustrup在20世纪80年代初期于贝尔实验室开发的一种编程语言。它的设计初衷是作为C语言的一个超集,通过添加面向对象编程的特性来增强C语言。C++支持多种编程范式,包括过程化编程、面向对象编程和泛型编程。

C++的历史可以追溯到1979年,当时Bjarne Stroustrup开始在贝尔实验室工作,他希望改进C语言以更好地支持面向对象的设计。1983年,C++语言的雏形正式被命名为C++,这一年该语言被正式命名并开始使用。C++这个名字是由Rick Mascitti在1983年建议的,它象征着C语言的自然演进,并且“++”在C语言中是递增运算符,表示这是一个C的增强版。

C++经历了多个版本的迭代和改进。

1998年,C++的第一个国际标准(ISO/IEC 14882:1998,简称C++98)发布,这个标准定义了许多现代C++的特性,包括模板、命名空间、异常处理等。

2003年,发布了C++03标准,这是一个次要版本,主要是对C++98标准的技术更正。

2011年,C++11标准发布,这是C++的一次巨大飞跃,引入了智能指针、lambda表达式、并发编程支持等重要新特性。随后,C++14和C++17标准分别在2014年和2017年发布,进一步提升了C++的功能和性能。

C++20是最新的C++标准,于2020年发布,引入了许多新特性,包括概念、协程、范围基于的for循环等。

C++概述:

C++是一种通用的、静态类型的、大小写敏感的、自由格式的编程语言,支持过程化编程、面向对象编程和泛型编程。作为C语言的超集,增加了面向对象的特性。

以下是C++的一些关键特点和概念的概述:

  1. 面向对象编程:C++支持类(class)、对象(object)、继承(inheritance)、封装(encapsulation)和多态(polymorphism)等面向对象的概念。

  2. 泛型编程:通过模板(template)机制,C++允许程序员编写与数据类型无关的代码,这使得代码更加灵活和可重用。

  3. 强类型系统:C++具有强类型系统,这意味着变量的类型在编译时就已经确定,并且类型转换需要明确指定。

  4. 编译型语言:C++是一种编译型语言,源代码在执行前需要被编译成机器码。

  5. 手动内存管理:C++允许程序员通过newdelete操作符手动分配和释放内存,这提供了更高的灵活性,但也增加了内存泄漏和悬挂指针的风险。

  6. 异常处理:C++提供了一套异常处理机制,允许程序在遇到错误时抛出异常,并在适当的地方捕获和处理这些异常。

  7. 标准模板库(STL):C++标准库中包含了一套强大的模板类和函数库,包括容器(如向量、列表、映射等)、迭代器、算法和函数对象。

  8. 自动类型推导:C++11引入了auto关键字,允许编译器自动推导变量的类型,简化了模板的使用。

  9. 智能指针:为了帮助管理动态分配的内存,C++11引入了智能指针,如std::unique_ptrstd::shared_ptr,它们在对象不再使用时自动释放内存。

  10. Lambda表达式:C++11引入了Lambda表达式,允许在需要的地方定义匿名函数。

  11. 并发编程:C++11及后续版本提供了并发编程的支持,包括线程库、原子操作和锁。

  12. 模块化:C++支持模块化编程,允许将代码分割成模块,以提高可维护性和复用性。

 在Windows上安装C++工具

Visual Studio:这是微软提供的一个功能丰富的IDE,它支持C++开发,并提供了调试工具、代码编辑器、版本控制集成和项目管理等功能。Visual Studio具有强大的调试功能,可以帮助开发者逐步执行代码、检查变量和内存状态,以及优化性能。它还支持跨平台开发,允许开发者为不同的操作系统创建应用程序。

下载链接:https://visualstudio.microsoft.com/zh-hans/downloads/

 打开链接后,进入网站选择下载Visual Studio社区版

 1.下载完成后,双击点开

 2.点击继续,等待下载安装一段时间后,进入到下图页面,来进行配置工作负荷,在桌面应用和移动应用处,选择<使用C++的桌面开发> 

 3.选择安装位置,如果不想安装在C盘,可以自主根据电脑磁盘修改

 4.点击页面右下角安装后,进入下图页面 ,等待安装加载完成后,点击启动

 简单使用Visual Studio 2022

1.点击创建新项目

 2.选择C++空项目,之后点击下一步

 3.进入如下图页面,自定义项目名称以及存放位置后,点击创建

 4.在创建后的页面找到解决方案资源管理器,如果没有显示,点击视图找到解决方案资源管理器,点击解决方案资源管理器就会显示出来了

 5.右键点击解决方案资源管理器中的源文件, 点击添加,在添加中选择新建项

 6.打开如下图页面后,选择C++文件(.cpp),自定义名称(不可更改文件后缀名)和位置后,点击添加

 7.创建完成后,就可以写入C++程序了

 8.检验是否可以正常使用:写一个简单的C++代码,之后点击键盘F5

 这样我们的C++工具就已经可以去投入到我们的C++学习任务中了

简单C++程序结构

C++代码示例

#include <iostream>
using namespace std;

int main()
{
	cout << "hello C++";
		return 0;
}

 代码解读:

  • C++ 语言定义了一些头文件,这些头文件包含了程序中必需的或有用的信息。上面这段程序中,包含了头文件 <iostream>
  • 下一行 using namespace std; 告诉编译器使用 std 命名空间。命名空间是 C++ 中一个相对新的概念。
  • 下一行 int main() 是主函数,程序从这里开始执行。
  • 下一行 cout << "HeC++"; 会在屏幕上显示消息 "Hello C++"。
  • 下一行 return 0; 终止 main( )函数,并向调用进程返回值 0

结语:

无论你是初学者还是有经验的开发者,我希望我的博客能对你的学习之路有所帮助。如果你觉得这篇文章有用,不妨点击收藏,或者留下你的评论分享你的见解和经验,也欢迎你对我博客的内容提出建议和问题。每一次的点赞、评论、分享和关注都是对我的最大支持,也是对我持续分享和创作的动力

 

 

 

 

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

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

相关文章

鹏哥C语言自定义笔记重点(29-)

29.函数指针数组 30.void指针是不能直接解引用&#xff0c;也不能-整数。 void*是无具体类型的指针&#xff0c;可以接受任何类型的地址。 31.qsort:使用快速排序的思想实现一个排序函数(升序) 32. 33.地址的字节是4/8 34.char arr[]{a,b} sizeof(arr[0]1)答案是4&#xff0…

万象公文常见问题的处理方法

在万象公文试用阶段&#xff0c;我们收集并汇总了用户反馈的一系列问题。现在我们针对这些问题进行一一解答&#xff0c;希望可以帮助大家提升万象公文的使用体验。 1、信创版插件在WPS中不显示或显示不全 安装前&#xff0c;如果WPS未彻底关闭&#xff0c;插件不会触发加载&a…

在家办公如何远程公司电脑

随着远程办公和居家办公的普及&#xff0c;如何高效、安全地远程控制办公室电脑成为许多职场人士的需求。Splashtop作为一款专业的远程控制软件&#xff0c;提供了强大的功能&#xff0c;使用户能够随时随地访问和操作办公室的电脑&#xff0c;实现高效的远程办公体验。 Splas…

【python】灰色预测 GM(1,1) 模型

文章目录 前言python代码 前言 用 python 复刻上一篇博客的 Matlab 代码。 【学习笔记】灰色预测 GM(1,1) 模型 —— Matlab python代码 # %% import numpy as np import statsmodels.api as sm import matplotlib.pyplot as plt from matplotlib.pylab import mplmpl.rcPa…

吐血整理 ChatGPT 3.5/4.0 新手使用手册~

都知道ChatGPT很强大&#xff0c;聊聊天、写论文、搞翻译、写代码、写文案、审合同等等&#xff0c;无所不能~ 那么到底怎么使用呢&#xff1f;其实很简单了&#xff0c;国内AI产品发展也很快&#xff0c;很多都很好用了~ 我一直在用&#xff0c;建议收藏下来~ 有最先进、最…

张雪峰:如果你现在是计算机专业,一定要优先报网络安全,它是未来国家发展的大方向

前言 “计算机专业 一定要优先报 网络安全 它是未来国家发展的大方向” 为什么推荐学网络安全&#xff1f; “没有网络安全就没有国家安全。”当前&#xff0c;网络安全已被提升到国家战略的高度&#xff0c;成为影响国家安全、社会稳定至关重要的因素之一。 01 高需求和就…

mq: 找不到或无法加载主类 Files\Java\jdk1.8.0_102\jre\lib\ext

错误&#xff1a;mq: 找不到或无法加载主类 Files\Java\jdk1.8.0_102\jre\lib\ext 原因&#xff1a;JAVA_HOME的环境变量包含空格 JAVA_HOMEC:\Program Files\Java\jdk1.8.0_131 解决方法&#xff1a;修改runserver.cmd和runbroker.cmd文件

html+css+js网页制作 电商小米商城6个页面 ui还原度百分之99

htmlcssjs网页制作 电商小米商城6个页面 ui还原度百分之99 网页作品代码简单&#xff0c;可使用任意HTML编辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 …

动态规划篇-代码随想录算法训练营第三十七天| 打家劫舍Ⅰ,打家劫舍Ⅱ,打家劫舍Ⅲ

打家劫舍Ⅰ 题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 讲解视频&#xff1a; 动态规划&#xff0c;偷不偷这个房间呢&#xff1f;| LeetCode&#xff1a;198.打家劫舍 题目描述&#xff1a; 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间…

记录一次CPU过高引起的服务不可用事件

目录 一.前言 二.程序日志定位 三.Mysql事务定位 四.程序代码定位 五.微服务注册异常定位 六.异常进程定位 6.1.进程的线程信息分析 6.2.进程的堆内存分析 七.总结 一.前言 系统收到客户大面积反馈,登系统反应慢,打不开,登录不上等问题,随即展开排查。 二.程序日志定…

基于SpringBoot的宽带业务管理系统的设计与实现pf

TOC springboot513基于SpringBoot的宽带业务管理系统的设计与实现pf 第1章 绪论 1.1 课题背景 二十一世纪互联网的出现&#xff0c;改变了几千年以来人们的生活&#xff0c;不仅仅是生活物资的丰富&#xff0c;还有精神层次的丰富。在互联网诞生之前&#xff0c;地域位置往…

20240823 每日AI必读资讯

脑后插管打CS拼抢三杀&#xff01;马斯克脑机接口最新进展&#xff0c;意念玩《黑神话》指日可待&#xff1f; - 马斯克旗下脑机接口公司 Neuralink 取得新突破 - 脑机接口试验第二人Alex 成功用意念打CS2、画CAD&#xff01; - 为了缓解植入物稳定问题&#xff0c;Neuralin…

寻址范围计算题

例题 这里32位代表32个bit&#xff0c;1字节8bit&#xff0c;32位有4字节 2GB2*1024*1024*1024个字节 可寻址范围公式内存/字长2*1024*1024*1024/4/1024512

python模块 - os系统交互模块

目录 前言: ​编辑 一、os.path模块 1、获取文件路径信息 os.path.abspath(): 获取绝对路径 os.path.dirname(): 获取目录名 os.path.basename(): 获取文件名 os.path.split(): 分割目录和文件名 os.path.join(): 拼接路径 2、判断路径信息 os.path.exists(): 判断路径…

记Windows文件右键扩展二级子菜单

参考 注册表添加桌面右键二级菜单_注册表右键二级菜单怎么设置-CSDN博客 Windows 右键菜单自定义配置_windows右键菜单内容修改-CSDN博客 注意事项 如需配置二级菜单&#xff0c;新增的项中&#xff0c;默认的键值一定需要为空(要显示未设置)&#xff0c;否则无法展示出二级…

编写一个函数,接受一个对象数组参数,返回所有对象中特定属性的值的总和

思路如下&#xff1a; 初始化总和为0 遍历对象数组 检查当前对象是否包含指定属性 如果是&#xff0c;则将属性值加到总和中 注意&#xff1a;这里假设属性值是可以进行加法运算的&#xff08;如数字、字符串表示的数字等&#xff09; 对于非数值类型&#xff0c;你可…

因为嫌吵,在自己家也用上了远程控制电脑

加班嘛&#xff0c;赶稿嘛&#xff0c;参加工作的人都懂那种无形的压力和烦躁。 因为家里空间有限&#xff0c;我平常都是直接在客厅用台式电脑加急改写方案&#xff0c;但今天晚上家里来了几位叔&#xff0c;他们边吃饭边聊着秦始皇的话题&#xff0c;都70多分钟了&#xff0c…

8万中医药方剂数据库检索方剂大全ACCESS数据库

方剂中方指医方&#xff0c;剂&#xff0c;古作齐&#xff0c;指调剂&#xff0c;方剂就是治病的药方。古代很早已使用单味药物治疗疾#病。经过长期的医#疗实践&#xff0c;又学会将几种药#物配合起来&#xff0c;经过煎煮制成汤液&#xff0c;即是最早的方剂。方剂一般由君#药…

Greyhound:基于lattice的快速多项式承诺方案

1. 引言 King’s College London的Ngoc Khanh Nguyen&#xff0c;和&#xff0c;IBM Research - Zurich的Gregor Seiler&#xff0c;2024年论文《Greyhound: Fast Polynomial Commitments from Lattices》&#xff0c;已被CRYPTO 2024收录。 开源代码实现见&#xff1a; htt…

MySQL中的回表查询、索引覆盖、索引下推

本文重点介绍索引中的常见概念&#xff1a;回表查询、索引覆盖、索引下推 一、回表查询 我们首先理解&#xff1a;在InnoDB存储引擎中&#xff0c;根据索引的存储形式&#xff0c;又可以分为以下两种&#xff1a; 分类含义特点聚集索引 (Clustered Index)将数据存储与索引放到…