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

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.rhkb.cn/news/406685.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[数据集][目标检测]道路积水检测数据集VOC+YOLO格式2699张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2699 标注数量(xml文件个数)&#xff1a;2699 标注数量(txt文件个数)&#xff1a;2699 标注…

python-逆序数(赛氪OJ)

[题目描述] 在一个排列中&#xff0c;如果一对数的前后位置与大小顺序相反&#xff0c;即前面的数大于后面的数&#xff0c;那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。比如一个元素个数为 4 的数列&#xff0c;其元素为 2,4,3,1&#xff0c;则 (2,…

深度优先搜索-放苹果

放苹果 http://noi.openjudge.cn/ch0205/666/ #include<bits/stdc.h> using namespace std;int dfs(int,int); //第一个赋值为1 其余为0 int a[11]{1},ans,n,m;int main(){ int k; cin>>k; for(int i1;i<k;i){ ans0; cin>>m>>n; dfs(m,1);//m个…

Windows C++控制台菜单库开发与源码展示

Windows C控制台菜单库 声明&#xff1a;演示视频&#xff1a;一、前言二、具体框架三、源码展示console_screen_set.hframeconsole_screen_frame_base.hconsole_screen_frame_char.hconsole_screen_frame_wchar_t.hconsole_screen_frame.h menuconsole_screen_menu_base.hcons…

入门 - Vue中使用axios原理分析及解决前端跨域问题

1. 什么是Axios&#xff1f; Axios&#xff08;ajax i/o system&#xff09;&#xff0c;是Vue创建者主推的请求发送方式&#xff0c;因其简单的配置与良好的性能被前端爱好者所喜爱。众所周知&#xff0c;在进行网页设计时经常需要从后端拿数据&#xff0c;在Web应用初期会将…

计算机网络之TCP序号,确认序号和报文传输时间

开篇提示 本篇适合于了解基础知识&#xff0c;进行扩展提高的使用&#xff0c;附带考研习题以及解析。 TCP序号和确认序号的区别 TCP首部中有序号和确认序号&#xff0c;他们都是4个字节&#xff08;4B&#xff09;&#xff0c;且在数据传输中有很重要的意义&#xff0c;那么两…

0x01 GlassFish 任意文件读取漏洞复现

参考文章&#xff1a; 应用服务器glassfish任意文件读取漏洞 - SecPulse.COM | 安全脉搏 fofa 搜索使用该服务器的网站 网络空间测绘&#xff0c;网络空间安全搜索引擎&#xff0c;网络空间搜索引擎&#xff0c;安全态势感知 - FOFA网络空间测绘系统 "glassfish"&…

用TensorFlow实现线性回归

说明 本文采用TensorFlow框架进行讲解&#xff0c;虽然之前的文章都采用mxnet&#xff0c;但是我发现tensorflow提供了免费的gpu可供使用&#xff0c;所以果断开始改为tensorflow&#xff0c;若要实现文章代码&#xff0c;可以使用colaboratory进行运行&#xff0c;当然&#…

外挂程序:增强点及辅助

1.关于前几篇介绍的外挂程序,SAP中的业务单据还是要区分具体的操作人员。如建立财务凭证,工号A,B,C使用相同的SAP账号,那就没办法知道是谁操作的了啊,所以sap的业务单据需要细分到具体人员的都要增强实现以下: 如生产工单: 具体的增强点: 2.辅助程序:SAP账号自动锁定功…

从新手到专家必读书籍:官方推荐.NET技术体系架构指南

前言 Microsoft 官方推荐了一系列有关 .NET 体系结构的指南&#xff0c;旨在帮助开发人员掌握最新的技术和最佳实践。这些资源覆盖了从微服务架构到云原生应用开发等多个主题&#xff0c;是开发高质量 .NET 应用程序不可或缺的参考资料。 通过这些指南&#xff0c;可以深入了…

瑞幸x《黑神话》周边秒空,联名营销真的是流量密码吗?

​8月19日&#xff0c;瑞幸上线了与国产3A游戏《黑神话&#xff1a;悟空》合作的联名活动&#xff0c;其中包括黑神话腾云美式咖啡及周边产品。很多人为了抢到联名的周边&#xff0c;一大早就在瑞幸卡点下单&#xff0c;更有一些网友早上6点多就在瑞幸门口“蹲点”&#xff0c;…

会话跟踪方案:Cookie Session Token

什么是会话技术&#xff1f; Cookie 以登录为例&#xff0c;用户在浏览器中将账号密码输入并勾选自动登录&#xff0c;浏览器发送请求&#xff0c;请求头中设置Cookie&#xff1a;userName:张三 ,password:1234aa &#xff0c;若登录成功&#xff0c;服务器将这个cookie保存…

河南萌新联赛2024第(六)场:郑州大学(补题ABCDFGIL)

文章目录 河南萌新联赛2024第&#xff08;六&#xff09;场&#xff1a;郑州大学A 装备二选一&#xff08;一&#xff09;简单介绍&#xff1a;思路&#xff1a;代码&#xff1a; B 百变吗喽简单介绍&#xff1a;思路&#xff1a;代码&#xff1a; C 16进制世界简单介绍&#x…

【时时三省】(C语言基础)指针进阶2

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 数组指针 是一种指针&#xff0d;是指向数组的指针 整型指针&#xff0d;是指向整形的指针 字符指针&#xff0d;是指向字符的指针 什么叫做数组指针 上面的整形指针跟字符指针只需要&am…

【鸿蒙学习】HarmonyOS应用开发者高级认证 - 一次开发,多端部署

一、学习目的 掌握鸿蒙的核心概念和端云一体化开发、数据、网络、媒体、并发、分布式、多设备协同等关键技术能力&#xff0c;具备独立设计和开发鸿蒙应用能力。 二、总体介绍 HarmonyOS 系统面向多终端提供了“一次开发&#xff0c;多端部署”&#xff08;后文中简称为“一…

日志审计-graylog ssh登录超过6次告警

Apt 设备通过UDP收集日志&#xff0c;在gray创建接收端口192.168.0.187:1514 1、ssh登录失败次数大于5次 ssh日志级别默认为INFO级别&#xff0c;通过系统rsyslog模块处理&#xff0c;日志默认存储在/var/log/auth.log。 将日志转发到graylog vim /etc/rsyslog.conf 文件末…

深入探讨SD NAND的SD模式与SPI模式初始化

在嵌入式系统和存储解决方案中&#xff0c;SD NAND的广泛应用是显而易见的。CS创世推出的SD NAND支持SD模式和SPI模式&#xff0c;这两种模式在功能和实现上各有优劣。在本文中&#xff0c;我们将深入探讨这两种模式的初始化过程&#xff0c;并比较它们在不同应用场景下的优劣&…

MySQL 配置免密码登陆(mysql_config_editor Configuration)

当使用mysql, mysqldump, mysqladmin等客户端连接MySQL数据库服务器时&#xff0c;需要提供用户凭证信息。你可以在每次连接时都输入连接信息&#xff08;用户名/密码/地址/端口等&#xff09;或者将用户信息保存在my.cnf配置文件的[client]模块。 第一种方式每次都输入用户密…

深度学习 --- VGG16各层feature map可视化(JupyterNotebook实战)

VGG16模块的可视化 VGG16简介&#xff1a; VGG是继AlexNet之后的后起之秀&#xff0c;相对于AlexNet他有如下特点&#xff1a; 1&#xff0c;更深的层数&#xff01;相对于仅有8层的AlexNet而言&#xff0c;VGG把层数增加到了16和19层。 2&#xff0c;更小的卷积核&#xff01;…

数据库MySQL多表设计、查询

目录 1.概述 2.一对多 3.一对一 4.多对多 5.多表查询 5.1内连接 5.2外连接 5.3子查询 1.概述 项目开发中,在进行数据库表结构设计时&#xff0c;会根据业务需求及业务模块之间的关系&#xff0c;分析并设计表结构&#xff0c;由于业务之间相互关联&#xff0c;所以各个…