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

68设计网站网站设计英文

68设计网站,网站设计英文,wordpress 相册浏览,在网站上做教育直播平台多少钱今天我们来学习一门新的语言,也是C语言最著名的一个分支语言:C。 在C的学习中,我们主要学习的三大组成部分:语法、STL、数据结构。 C的介绍 C的历史可追溯至1979年,当时贝尔实验室的本贾尼斯特劳斯特卢普博士在面对复杂…

        今天我们来学习一门新的语言,也是C语言最著名的一个分支语言:C++。

           在C++的学习中,我们主要学习的三大组成部分:语法、STL、数据结构。

        C++的介绍

        C++的历史可追溯至1979年,当时贝尔实验室的本贾尼·斯特劳斯特卢普博士在面对复杂软件开发任务、尤其是模拟和操作系统开发工作的时候发现了现有语言(如C语言)在表达能力、维护能力、拓展能力的不足。1983年本佳尼博士基于C语言添加了面向对象的编程的特性,也就是C++的雏形。

        C++的标准化工程从1989年开始,并成立了ANSI和ISO国际标准化组织的联合标准化委员会。1994年该委员会第一次提出C++的标准化草案。1997年联合标准委员会通过了该标准的最终草案,1998年C++的ANSI\ISO标准正式投入使用。

以下是C++不同版本

年份标准名称核心特性影响与意义
1985C++ 1.0类、继承、虚函数、运算符重载奠定C++面向对象基础,首个商业编译器发布
1989C++ 2.0多重继承、抽象类、静态成员函数扩展面向对象能力
1998C++98 (ISO/IEC 14882:1998)STL标准模板库、异常处理、RTTI、命名空间首个国际标准,成为工业级语言标杆
2003C++03 (ISO/IEC 14882:2003)修复C++98缺陷、值初始化语法改进过渡性修订版本,未引入重大特性
2011C++11 (ISO/IEC 14882:2011)auto、移动语义、Lambda、智能指针、constexpr、并发库现代C++革命性起点,大幅提升开发效率与安全性
2014C++14 (ISO/IEC 14882:2014)泛型Lambda、二进制字面量、constexpr函数增强对C++11的完善补充
2017C++17 (ISO/IEC 14882:2017)结构化绑定、std::filesystemif constexprstd::optional简化代码编写,强化编译期计算
2020C++20 (ISO/IEC 14882:2020)概念(Concepts)、协程(Coroutines)、模块(Modules)、范围库(Ranges)重大范式革新,提升泛型编程能力与工程化水平
2023C++23 (ISO/IEC 14882:2023*)标准库模块化、多维数组(mdspan)、格式化库(std::format)、网络库原型进一步优化工程实践,增强数学计算与I/O能力(*预计2023年底发布)

       编译器

        但是标准委员会只管理C++的特性,其实现依然要依赖编译器的实施,常用的编译器有三个:VS系列(微软开发)、g++(Linux系统上运行)、clang++(应用较少)。

        C++的参考文档

        https://legacy.cplusplus.com/reference/

        (非官方文档,标准也只到C++11,但是方便阅读)

        https://zh.cppreference.com/w/cpp

        https://en.cppreference.com/w/

        (官方文档,内容更新至最新版本,支持中英双语查看,但是不方便阅读查看。)

        C++的重要性

        TIOBE 编程社区指数是一个衡量编程语言受欢迎程度的指标,评判的依据来自世界范围内的工程师、课程、供应商及搜索引擎。以下是截止2025年4月编程语言排行榜

        

        python因为近来AI的高速发展而位列第一且上升速度较快。但是由以上图可以发现,C\C++仍然占大部分。尽管相较于JAVA,C++的生态环境开发比较慢(JAVA的网络库约半年更新一次)。

C++在工作领域的应用

        C++的应用领域主要在服务器端、游戏(引擎)、机器学习引擎、音视频处理、嵌入式软件、电信设备、金融应用、操作系统、编译器、基础架构、基础工具、硬件交互等很多方面。

1.大型软件开发:如编译器、数据库、操作系统、浏览器等等

2.音视频处理:主要技术栈就是C++

3. PC客户端开发:一般是Windows啊桌面软件。技术栈一般要学习C++和QT(QT是一种跨平台的C++图形界面程序)

4.服务端开发:高性能服务地区

5.嵌入式开发:

6.游戏引擎开发:

7.机器学习引擎开发:底层算法是C++,上层用python封装

8.测试开发:

C++学习书籍推荐

《C++primer》:主要讲解语法,很经典的语法书记。比较晦涩难懂。在拥有一定基础后可以当作语法字典。

《STL源码剖析》:从底层实现的角度深度结合STL,深度剖析STL源码的实现。建议有一定基础后学习观看。

《Effective C++》:关于这本书有一句评价:将程序员分为看过这本书的和没看过这本书的。这本书主要讲解了55个如何正确高效地使用C++的条款。建议有一定基础后或者在工作一两年后看。

请认准以下三本书的封面:

C++学习

首先我们来看一段标准的C++语法写的hello world:

C语言其实一定程度上也可以兼容(但是慎用!!!)  

        那为什么C++是这么个写法呢?接下来我们就来解析一下:

        命名空间

        相较于C++,C语言有命名冲突的问题。我们来上一段代码演示一下:

        

再上图代码中,打印出来的rand的值就是我们定义的10.

但是当我们将头文件<stdlib.h>包含在内的时候,就会发生如下报错:

namespace的定义

        1.定义命名空间,需要namespace关键字,后面跟变量的名字,接着一对{}即可,{}中为命名空间的成员。命名空间可以定义变量、类型、函数等。

        2.namespace 本质上是定义一个域,这个域跟全局域各自独立,不同的域定义同名变量。所以一下代码的rand不再冲突了

        3.C++中域有函数定义域、全局域、命名空间域、类域(定义域和全局域影响生命周期,命名空间域和类域不会 );域影响的是编译时语法查找一个变量/函数/类型出处(声明或定义),所以有了域隔离,名字冲突就解决了。局部域与全局域除了影响编译查找逻辑,还会影响变量的生命周期。命名空间和域类不影响变量生命周期

4.namespace只能定义在全局(当然也可以嵌套定义)

5.项目工程中多文件定义的同名namespace会认为是同一个namespace,不会冲突。

6.C++的标准库都放在一个叫std的(standard)的命名空间中。

命名空间的使用

        编译器查找一个变量的声明/定义时,默认只会在全局或者局部找,不会到命名空间去查找。所以我们要使用命名空间中的函数和变量,需要以下三种方式:

1.指定命名空间去访问(项目中推荐这种用法)

2.using将命名空间中的成员展开,项目中经常访问的不存在冲突的成员推荐用这种方式

3.展开命名空间中全部成员(项目中不推荐,因为风险很大,平时小练习为了方便可以用)

如图,以下两种方式等效。

第一种是指定命名方式访问。

,第二种方式就是展开命名空间。

接下来回归最开始的hello world程序

        

如果我们将展开命名空间std的代码注释掉,就会发生如下情况

        

在这种情况下如果我们想要打印,可以这样

如果多次应用cout变量,可以这样

C++的输入输出

1.<iostream>是Input Output Stream的缩写,是标准的输入输出流库,定义了输入输出的对象。

2.std::cin是istream类的对象,主要面对窄字符的标准输入流。

3.std::cout是ostream类的对象,主要面对窄字符的标准输出流。

4.std::endl是操作符,底层实现的一个函数,流插入输出时,相当于插入一个换行字符加刷新缓冲区。

5.<<是流插入运算符,>>是流提取运算符(C语言还用它来作为左移右移运算符)

6.使用C++的输入输出更加方便,不需要像printf函数和scanf函数,需要手动指定格式,C++的输入输出可以自动识别变量类型(本质是通过函数重载实现),最重要的是C++的流能更好的支持自定义类型的对象的输入输出。

例如:针对C++中的”类“类型, printf函数作为原生函数,没有对应的格式去打印它,但是C++可以。cin和cout的优势是可以输入输出任意类型。本质是为了支持任意类型输入输出。

7.IO类型涉及类和对象,运算符重载、继承等多方面面对对象的知识,后续学习可以认识。

8.cout/cin/endl都是属于C++标准库,C++标准库放在一个叫std(standard)的命名空间中,所以要通过命名空间的使用方式去使用它们

9.在vs中,我们只要包含了<iostream>头文件即使不包含<stdio.h>也可以使用printf函数和scanf函数,但是注意这种写法在其他编辑器上可能报错。

        缺省参数

        1.缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参,缺省参数分为全缺省和半缺省参数。(有些地方把缺省参数也叫默认参数)
        2.全缺省就是全部形参给缺省值,半缺省就是部分形参给缺省值。C++规定半缺省参数必须从右往左依次连续缺省,,不能间隔跳跃给缺省值。
        3.带缺省参数的函数调用,C++规定必须从左到右依次给实参,不能跳跃给实参。
        4.函数声明和定义分离时,缺省参数不能在函数声明和定义中同时出现,规定必须函数声照给缺省值

具体如下图所示

但是缺省参数不可以这样传参

同理也不可以只传递第三个参数不传递第一个和第二个。

今天的C++学习就到这里,感谢各位读者大大的观看,求一个赞,谢谢

        

        


文章转载自:

http://4rbxUjTA.wspyb.cn
http://P1OGOZmS.wspyb.cn
http://Nzl25c40.wspyb.cn
http://aUa5LGIe.wspyb.cn
http://DLYTmKww.wspyb.cn
http://XFshnx1H.wspyb.cn
http://vcISruVP.wspyb.cn
http://TTgaalqQ.wspyb.cn
http://DKhLRg8n.wspyb.cn
http://PHdIe3cK.wspyb.cn
http://SCt1RpXx.wspyb.cn
http://LtRQeMbJ.wspyb.cn
http://kYsvUOlj.wspyb.cn
http://YuOYhlEF.wspyb.cn
http://YwXN8q37.wspyb.cn
http://zUBwTGW9.wspyb.cn
http://ZBMZHTHs.wspyb.cn
http://n4E45ecR.wspyb.cn
http://XsZXngGf.wspyb.cn
http://6cHKmZ25.wspyb.cn
http://ZydX0SFG.wspyb.cn
http://fzZCBrz7.wspyb.cn
http://GOmCDfNn.wspyb.cn
http://eGOkWKps.wspyb.cn
http://dQfTyY09.wspyb.cn
http://HqNaJfE6.wspyb.cn
http://b6kbvDTG.wspyb.cn
http://P8PxJIQ8.wspyb.cn
http://lrjYLzxD.wspyb.cn
http://gzS8kWzS.wspyb.cn
http://www.dtcms.com/wzjs/770234.html

相关文章:

  • 网站关于页面微信网站api
  • 广州市 网站建设建设wap网站还用吗
  • 衡阳网站设计ss0734企业营销网站建设价格
  • 网站建设公司图片贵州省网站备案
  • 做网站前的准备什么企业网站改版seo
  • 佛山建设网站公司哪家好wordpress网站源文件太多
  • 南昌英文网站建设哪个网站做美食好一点
  • 佛山制作做网站微信公众号平台入口官网
  • 网站建设xyhlrj辽阳网站seo
  • 昆明网站制作网页建设网站如何优化关键词
  • 腾讯企业邮箱手机登录入口seo网站诊断文档案例
  • 做网站营销高效网站建设
  • 做简历网站做政务网站
  • 做网站和app哪个难自己怎么制作小程序商城
  • 微信公众号php网站开发做陶瓷的公司网站
  • 杭州市社区建设网站wordpress关键词位置
  • wordpress 搜索标签搜索排名优化公司
  • 门户网站php源码广告营销公司
  • 网站建设岗位说明wordpress占用空间越来越大
  • linux建立网站网站开发及app开发报价
  • 景区网站建设的意义网站开发需不需要考研
  • 百度做网站投广告网络培训班答案
  • 坪山区住房和建设局网站seo的收费标准
  • 交互式网站备案难吗wordpress菜单教程
  • 网站建设需要什么功能led网站源码
  • 网站后台图片编辑器吉林省延边州建设局网站
  • 给企业做网站收入哈尔滨香坊区地图
  • 手机数据线东莞网站建设技术支持教育机构培训
  • 上传视频网站开发南通营销型网站建设
  • 淘宝客模板网站wordpress引用js