(二)C++新手入门必知

C++只是一门语言

通常说的学习C++仅仅是学习C++这门语言本身,网上有很多的教程,也有很多的书籍都是在介绍C++语言,C++语法以及一些使用C++实现的算法。C++ 语法应该是现在高级语言中最复杂的,特别是C++11 之后加入了很多的新特性。其他的高级语言加入了新特性会让开发者用起来更简单,而C++却相反,每加入一些新特性就会极大的提高学习成本,细节非常多,想要运用好新特性真的需要好好的研究一番。而且C++语言除了官方的stl库 就没有任何官方的辅助库,stl库的功能也是非常有限,其他全靠开源社区的支持。这点比其他语言逊色太多了。

什么是C++开发

如果有人对你说他是做android开发,做iOS 开发。你一下子就能明白他的工作。但是如果有人跟你说是做C++开发的那你肯定很懵,因为根本猜不出来他的工作。因为C++只是一门语言,这门语言可以用在任何开发场景,也可以用在任何平台。大到操作系统的开发,小到一个软件窗口 都可以用C++来写。C++可以用于windows程序开发,也可以用于android/iOS开发。C++可以用在客户端开发也可以用在后台开发。所以说C++ 工程师是一个非常非常广泛的概念。 而 android/iOS开发更详细可以理解为在android/iOS 系统上开发app,所以别人一听就知道了。

学完C++开发能做什么

C++ 学完之后能做什么 是很多新手特别关心的问题,特别是客户端开发。学完C++之后是不是就可以开发出一个可交互的软件?是不是就可以去做游戏开发?答案并不能。这个和android/iOS 开发完全是两回事。体验也完全不同。当C++还在学习 class,虚函数的时候,andoird/iOS 开发已经开始写界面了,已经学会了弹出界面,处理点击按钮事件了。对着app可以一顿操作,然后执行自己写的代码。真的是成就感满满。 c++ 开发还在对着黑色的控制台窗口发呆,花费大量的时间学习封装,继承,多态,可以说是有点无聊。经过了一段时间的学习之后,C++ 的语法学得差不多了,这个时候更迷茫了,不知道接下来要干啥。当初信心满满的以为学完了C++就可以开发软件,开发游戏了,而实际上还有很长一段距离。

系统API

C++ 语言学习完之后,我们还需要接触另一个东西就是系统API。 什么事系统API,下面是一个解释
系统API(Application Programming Interface)是软件系统提供给开发者使用的一组接口,用于访问操作系统的功能和资源。系统API允许开发者通过调用指定的函数或方法来实现特定的操作,例如访问文件系统、网络通信、系统设置、用户界面等。开发者可以使用系统API来创建应用程序,与操作系统或其他软件系统进行交互。
所以当我们学习完C++之后,就需要使用系统提供的API 来开发应用程序,比如制作一个窗口,点击一个按钮,输入文本框等等。无论是windows,iOS还是android 都提供了丰富的API 给开发者使用。

集成开发环境(IDE)

无论是开发哪个系统的app 都会有相应的集成开发环境,可以编写代码,编译,运行,调试等一条龙服务。windows 上的Visual Studio, iOS 使用的xcode,以及安卓的 android studio。 这些开发工具可以大大提高写代码的效率, 简化调试过程,而且还支持 git等版本控制。所以一定要先熟悉这些IDE 的使用。

包管理工具

很多的高级语言都有自己的包管理工具,比如node 使用npm。 java 使用mavn等。 C++并没有官方的包管理工具,这也是C++ 的一个最大的弱点。原因非常多,有历史原因也有语言本身特性问题。C++是一门静态类型的编程语言,它的编译和链接过程复杂,C++的代码在不同的平台和编译器上可能会有不同的行为。使用不同版本的STL 编译出来的库都会不兼容。所以通常做法都是把源码下载回来,在特定的环境下编译生成产物。一个项目的开发者必须统一开发环境,否则即使有产物也不一定能使用。

后面的文章将会介绍一些实际项目中框架设计相关的内容

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

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

相关文章

【Docker-Dev】Mac M2 搭建docker的redis环境

Redis的dev环境docker搭建 1、前言2、官方文档重点信息提取2.1、创建redis实例2.2、使用自己的redis.conf文件。 3、单机版redis搭建4、redis集群版4.1、一些验证4.2、一些问题 结语 1、前言 本文主要针对M2下,相应进行开发环境搭建,然后做一个文档记录…

面试算法88:爬楼梯的最少成本

题目 一个数组cost的所有数字都是正数,它的第i个数字表示在一个楼梯的第i级台阶往上爬的成本,在支付了成本cost[i]之后可以从第i级台阶往上爬1级或2级。假设台阶至少有2级,既可以从第0级台阶出发,也可以从第1级台阶出发&#xff…

C++ 具名要求-全库范围的概念

此页面中列出的具名要求,是 C 标准的规范性文本中使用的具名要求,用于定义标准库的期待。 某些具名要求在 C20 中正在以概念语言特性进行形式化。在那之前,确保以满足这些要求的模板实参实例化标准库模板是程序员的重担。若不这么做&#xf…

window使用cpolar实现内网穿透

文章目录 cpolar下载和安装启动和配置cpolar卸载 cpolar下载和安装 进入spolar官网,完成注册,下载相应的cploar版本解压和运行安装文件 配置安装路径,然后选择next,完成即可 启动和配置 点击首页的快捷图标打开网页&#xf…

【LeetCode】1158. 市场分析 I

表: Users ------------------------- | Column Name | Type | ------------------------- | user_id | int | | join_date | date | | favorite_brand | varchar | ------------------------- user_id 是此表主键(具有唯一值…

Defi安全-Monox攻击事件Foundry复现

其它相关内容可见个人主页 Mono攻击事件的介绍见:Defi安全–Monox攻击事件分析–phalconetherscan 1. 前情提要和思路介绍 Monox使用单边池模型,创建的是代币-vCash交易对,添加流动性时,只需添加代币,即可进行任意代…

Jmeter相关概念

Jmeter相关概念 jmeter性能指标 Aggregate Report 是 JMeter 常用的一个 Listener,中文被翻译为“聚合报告”。今天再次有同行问到这个报告中的各项数据表示什么意思,顺便在这里公布一下,以备大家查阅。 如果大家都是做Web应用的性能测试&a…

八、Vue3组件库经验[Ant Design]

一、Ant Design 地址:https://2x.antdv.com/components/overview-cn/ 1.DatePicker 日期选择框 问题1:当将时间加载到DatePicker 日期选择时,用出现bug卡住,并报错 原因:DatePicker 需要的dayjs处理后的数据格式 …

C语言中关于函数调用的理解

理论 关于函数调用的方式有两类:传值调用和传址调用 传值调用:函数的形参和实参分别占有不同的内存块,对形参的修改不会影响实参。 传址调用:把函数外部创建变量的内存地址传递给函数参数的一种调用方式。可以让函数和函数外面…

每周一算法:倍增法求区间最大最小值(RMQ)

RMQ RMQ 是英文 Range Maximum/Minimum Query 的缩写,表示区间最大(最小)值。使用倍增思想解决 RMQ 问题的方法是 ST 表(Sparse Table, 稀疏表 )。ST 表是用于解决 可重复贡献问题 的数据结构。 可重复贡献…

IPv6和IPv4在技术层面的区别

随着互联网的不断发展,IPv4地址资源已经逐渐枯竭,而IPv6地址的使用逐渐成为趋势。IPv6和IPv4作为互联网协议的两个版本,在技术层面存在许多区别。本文将从地址空间、地址表示方法、路由协议、安全性、移动性以及网络性能等方面对IPv6和IPv4进…

Dockerfile的ENV

文章目录 环境总结测试测试1测试2测试3测试4测试5测试6 参考 环境 RHEL 9.3Docker Community 24.0.7 总结 如果懒得看测试的详细信息,可以直接看结果: 一条 ENV 指令可以定义多个环境变量。Dockerfile里可以包含多条 ENV 指令。环境变量的值不需要用…

docker运行状态

systemctl status docker Active: active (running) since 一 2024-01-08 06:21:10 CST; 3min 57s ago [rootlocalhost ~]# systemctl status docker ● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; enabl…

【MIdjourney】关于图像中人物视角的关键词

本篇仅是我个人在使用过程中的一些经验之谈,不代表一定是对的,如有任何问题欢迎在评论区指正,如有补充也欢迎在评论区留言。 1.全景镜头(panorama) 全景镜头是一种广角镜头,可以捕捉到比普通镜头更广阔的视野范围。全景镜头&…

目标检测-One Stage-YOLOv4

文章目录 前言一、目标检测网络组成二、BoF(Bag of Freebies)1. 数据增强2.语义分布偏差问题3.损失函数IoUGIoUDIoUCIoU 三、BoS(Bag of Specials)增强感受野注意力机制特征融合激活函数后处理 四、YOLO v4的网络结构和创新点1.缓解过拟合(Bo…

Python武器库开发-武器库篇之子域名扫描器开发(四十一)

Python武器库开发-武器库篇之子域名扫描器开发(四十一) 在我们做红队攻防或者渗透测试的过程中,信息收集往往都是第一步的,有人说:渗透的本质就是信息收集,前期好的信息收集很大程度上决定了渗透的质量和攻击面,本文将…

竞赛练一练 第23期:NOC大赛每日一练,python题目刷题第8天,包含答案解析

题目来自:NOC 大赛创客智慧编程赛项Python 复赛模拟题(二) NOC大赛创客智慧编程赛项Python 复赛模拟题(二) 第一题: 编写一个成绩评价系统,当输入语文、数学和英语三门课程成绩时,输出三门课程总成绩及其等级。 (1)程序提示用户输入三个数字,数字分别表示语文、数学、…

Springboot进行多环境配置的2种方式

本文来说下Springboot使用Spring Profile和Maven Profile进行多环境配置 文章目录 概述Spring Profile多环境主配置文件与不同环境的配置文件 Maven ProfileProfile配置资源过滤 Spring Profile与Maven Profile具体使用 概述 原因 在实际的项目上,一般会分三种环境d…

编译原理复习的有用链接

2024年1月7日,考完编译原理,是时候和考试时候的她说再见了,整理一些收藏夹里的链接和思考吧 实验看这里: 编译原理_HNU岳麓山大小姐的博客-CSDN博客 课后习题看这里: 编译原理作业答案github LL1文法复习 [编译原…

Java学习苦旅(二十二)——MapSet

本篇博客将详细讲解Map和Set。 文章目录 搜索概念模型 MapMap.Entry<K, V>Map的常用方法说明TreeMap和HashMap的区别 Set常用方法说明TreeSet和HashSet的区别 结尾 搜索 概念 Map和set是一种专门用来进行搜索的容器或者数据结构&#xff0c;其搜索的效率与其具体的实例…