了解C++之后,可以阅读一些高级主题面向对象编程相关的书籍;

OOP有助于开发大型的项目,并提高其可靠性;

OOP方法的基本活动之一就是发明能够模拟当前情况的类。当前情况被统称为问题域

由于实际问题通常很复杂,因此找到适当的类非常富有挑战性;

创建复杂系统时,从空白开始通常不可行,最好采用逐步迭代的方式开始;

最重要的是,在分析和设计阶段完成尽可能多的迭代工作,而不要不断修改实际代码;

常用的技术有两种

1)用例分析

  开发小组列出常见的使用方式或最终系统将用于的场景;找出元素、操作和职责;

  以确定可能要使用的类和类特性。

2)CRC卡

  是一种分析场景的简单方法;

  卡片上列出了类名,类责任以及类的协作者(必须与之交互的其他类);

  然后使用CRC卡片提供的接口模拟场景;

在更大的规模上,是用于整个项目的系统方法

  最新的工具是统一建模语言(UML),它不是一种编程语言,而是一种用于表示编程项目的分析和设计语言;

此外还要学习特定的类库

====================================================

C++新标准新增了了大量功能

1)旨在让C++更容易学习和使用:

  用大括号括起来的统一的列表初始化;

  使用auto自动推断类型;

  类内成员初始化;

  基于范围的for循环;

2)旨在增强类设计以及使其更容易理解:

  默认的和禁用的方法;

  委托构造函数;

  继承构造函数;

  让虚函数设计更清晰的说明符override和final;

3)旨在提高程序和编码效率:

  lambda表达式比函数指针和函数更好;

  模板function可用于减少模板实例数量;

  右值引用能够使用移动语义以及使用移动构造函数和赋值运算符

4)更佳的工作方式:

  作用域内枚举让你能够更好地控制枚举的作用域和底层类型;

  模板unique_ptr和shared_ptr让你能够更好地处理和使用new分配内存;

5)改进模板设计:

  新增的decltype

  返回类型后置

  模板别名

  可变参数模板

6)支持底层编程:

  修改后的共用体

  POD规则

  alignof()运算符

  alignas说明符

  constexpr机制

7)为常见编程提供解决方案:

  多个库新增(新的STL类、tuple模板、regex库)

8)并行编程

  添加关键字thread_local

  atomic库  

        

C++_新特性总结与未来的路的更多相关文章

  1. C++_新特性2-RTTI运行阶段类型识别

    这部分属于C++的新特性,感觉比较高阶的特性.我把它归于属于奇技淫巧的范畴.了解即可. RTTI是运行阶段类型识别(Runtime Type Identification)的简称. 这是添加到C++中 ...

  2. MySQL 5.7 新特性大全和未来展望 图解

    本文转自微信公众号:高可用架构 作者:杨尚刚 引用 美图公司数据库高级 DBA,负责美图后端数据存储平台建设和架构设计.前新浪高级数据库工程师,负责新浪微博核心数据库架构改造优化,以及数据库相关的服务 ...

  3. MySQL 5.7 新特性大全和未来展望

    引用 美图公司数据库高级 DBA,负责美图后端数据存储平台建设和架构设计.前新浪高级数据库工程师,负责新浪微博核心数据库架构改造优化,以及数据库相关的服务器存储选型设计.之前在「高可用架构」发表的&l ...

  4. C++_新特性1-类型转换运算符

    C++的创始人认为C语言的类型转换运算符太过于松散.他采取了更加严格的限制允许的类型转换.并添加了4个类型转换运算符. 这部分特性比较高阶,我把它归于奇技淫巧的范畴.这里简单介绍一下,以后实际有用到再 ...

  5. JavaSE学习总结第27天_反射 & 设计模式 & JDK5、7、8新特性

      27.01  反射_类的加载概述和加载时机 类的加载:当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化. 加载:就是指将class文件读 ...

  6. ArcGIS API for JavaScript 4.2学习笔记[0] AJS4.2概述、新特性、未来产品线计划与AJS笔记目录

    放着好好的成熟的AJS 3.19不学,为什么要去碰乳臭未干的AJS 4.2? 4.2全线基础学习请点击[直达] 4.3及更高版本的补充学习请关注我的博客. ArcGIS API for JavaScr ...

  7. Atitit .c#的未来新特性计划草案

    Atitit .c#的未来新特性计划草案 1. C#的未来:追踪空引用1 1.1. 2. 变量命名空间1 1.2. 10. 项目引用Native dll2 1.3. 10. 项目引用Native dl ...

  8. Superedge的新特性和未来之路

    作者 王冬,腾讯云高级研发工程师,专注于Kubernetes.容器等云原生领域,SuperEdge 核心开发人员,现负责腾讯云边缘容器TKE Edge私有化相关工作. 背景 2021年9月27号,,在 ...

  9. C# 新特性_协变与逆变 (.net 4.0)

    C#4.0中有一个新特性:协变与逆变.可能很多人在开发过程中不常用到,但是深入的了解他们,肯定是有好处的. 协变和逆变体现在泛型的接口和委托上面,也就是对泛型参数的声明,可以声明为协变,或者逆变.什么 ...

随机推荐

  1. 2-1 gradle安装

    因为Gradle是基于JVM的,所以一定要确保本机已经安装了JDK,我们可以通过java -version来验证一下是否已经安装了JDK.  bin目录里面是两个可执行文件,一个是Windows下面的 ...

  2. YII2 模型关联之 一对多

    需求,一个用户有多篇文章全部查询出来 文章表 用户表 //首先查找出一个用户出来 $user=Users::find()->'])->one(); //第一个参数还是关联的模型,第二个依旧 ...

  3. Druid配置属性列表及含义

    前两天,在排查springBoot使用双数据源出现的运行一段时候出现了数据库连接断开的问题的时候,查了很多关于Druid数据库连接池配置的文章,虽然最后问题的原因不是属性配置的问题,也可以说是 属性配 ...

  4. php+mysql网站无限级栏目分类-递归获取树形结构函数

    如果网站采用了无限级栏目结构,我们可以将网站所有栏目获取出来组成一个树形结构.数据库结构: 函数代码: //获得指定文章分类的子分类组成的树形结构 function cateTree($pid=0,$ ...

  5. SpringBoot16 MockMvc的使用、JsonPath的使用、请求参数问题、JsonView、分页查询参数、JsonProperty

    1 MockMvc的使用 利用MockMvc可以快速实现MVC测试 坑01:利用MockMvc进行测试时应用上下文路径是不包含在请求路径中的 1.1 创建一个SpringBoot项目 项目脚手架 1. ...

  6. Java后端WebSocket的Tomcat实现(转载)

    一.WebSocket简单介绍 随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了.近年来,随着HTML5的诞生,WebSocket协议被提出,它实现了浏览器与服务器的全双工通 ...

  7. 利用arcgis实现经纬度和平面坐标互转

    一平面直角坐标(投影坐标)转经纬度 基本程序是这样的 经纬度计算操作 1. 定义坐标系:在AreToolbox下→数据管理工具→投影和变换→定义投影→输入数据或要素点击▼选择定义同层(同时在坐标系中点 ...

  8. C# 用代码返回上一页

    若我们在后台.cs文件中想做到让浏览器返回上一页,我们可以在.cs代码中这样写 Page.ClientScript.RegisterStartupScript(Page.GetType(), &quo ...

  9. Django框架 之 MTV模型、 基本命令、简单配置

    浏览目录 MTV模型 Django框架前奏 Django基础必备三件套 Djaogo基本命令 MTV模型 Django的MTV分别代表: Model(模型):负责业务对象与数据库的对象(ORM) Te ...

  10. .Net插入大批量数据

    1. 使用SqlDataAdapter /// <summary>        /// 实现数据库事务,大批量新增数据        /// </summary>       ...