C++_新特性总结与未来的路
了解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++_新特性总结与未来的路的更多相关文章
- C++_新特性2-RTTI运行阶段类型识别
这部分属于C++的新特性,感觉比较高阶的特性.我把它归于属于奇技淫巧的范畴.了解即可. RTTI是运行阶段类型识别(Runtime Type Identification)的简称. 这是添加到C++中 ...
- MySQL 5.7 新特性大全和未来展望 图解
本文转自微信公众号:高可用架构 作者:杨尚刚 引用 美图公司数据库高级 DBA,负责美图后端数据存储平台建设和架构设计.前新浪高级数据库工程师,负责新浪微博核心数据库架构改造优化,以及数据库相关的服务 ...
- MySQL 5.7 新特性大全和未来展望
引用 美图公司数据库高级 DBA,负责美图后端数据存储平台建设和架构设计.前新浪高级数据库工程师,负责新浪微博核心数据库架构改造优化,以及数据库相关的服务器存储选型设计.之前在「高可用架构」发表的&l ...
- C++_新特性1-类型转换运算符
C++的创始人认为C语言的类型转换运算符太过于松散.他采取了更加严格的限制允许的类型转换.并添加了4个类型转换运算符. 这部分特性比较高阶,我把它归于奇技淫巧的范畴.这里简单介绍一下,以后实际有用到再 ...
- JavaSE学习总结第27天_反射 & 设计模式 & JDK5、7、8新特性
27.01 反射_类的加载概述和加载时机 类的加载:当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化. 加载:就是指将class文件读 ...
- ArcGIS API for JavaScript 4.2学习笔记[0] AJS4.2概述、新特性、未来产品线计划与AJS笔记目录
放着好好的成熟的AJS 3.19不学,为什么要去碰乳臭未干的AJS 4.2? 4.2全线基础学习请点击[直达] 4.3及更高版本的补充学习请关注我的博客. ArcGIS API for JavaScr ...
- Atitit .c#的未来新特性计划草案
Atitit .c#的未来新特性计划草案 1. C#的未来:追踪空引用1 1.1. 2. 变量命名空间1 1.2. 10. 项目引用Native dll2 1.3. 10. 项目引用Native dl ...
- Superedge的新特性和未来之路
作者 王冬,腾讯云高级研发工程师,专注于Kubernetes.容器等云原生领域,SuperEdge 核心开发人员,现负责腾讯云边缘容器TKE Edge私有化相关工作. 背景 2021年9月27号,,在 ...
- C# 新特性_协变与逆变 (.net 4.0)
C#4.0中有一个新特性:协变与逆变.可能很多人在开发过程中不常用到,但是深入的了解他们,肯定是有好处的. 协变和逆变体现在泛型的接口和委托上面,也就是对泛型参数的声明,可以声明为协变,或者逆变.什么 ...
随机推荐
- Leetcode:Regular Expression Matching分析和实现
题目大意是要求我们实现一个简单的正则表达式全匹配判断.其中正则表达式中只包含一般字符,以及全匹配字符.和变长字符*.其中.可以匹配一个字符,而*与前一个字符相关联,x*可以被看作任意多个x(0到正无穷 ...
- Windows下Memcached的安装配置方法
1.将第一个包解压放某个盘下面,比如在c:\memcached. 2.在终端(也即cmd命令界面)下输入 'c:\memcached\memcached.exe -d install' 安装. 3.再 ...
- 【转】LVS/Nginx如何处理session问题
原文地址:http://network.51cto.com/art/201005/200279.htm 通过设置persistence的值,使session会话保持. [51CTO.com独家特稿]业 ...
- 解决error C2365
今天把一个FILE_BOTH_DIRECTORY_INFORMATION结构的变量,愣是写成了“enum”枚举....然后出现error C2365错误. 在CSDN上看到别人遇到问题,有人回复了“如 ...
- Learning from Imbalanced Classes
https://www.svds.com/learning-imbalanced-classes/ 下采样即 从大类负类中随机取一部分,跟正类(小类)个数相同,优点就是降低了内存大小,速度快! htt ...
- [GO]数组指针做函数参数
package main import "fmt" //p指向实现数组a,它是指向数组,它是数组指针//*p指向指针指向的内存,就是实参a func modify1(p *[]in ...
- 第04章-面向切面的Spring
1. 什么是面向切面编程 AOP是什么 切面帮助我们模块化横切关注点. 横切关注点可被描述为影响应用[多处的]功能.如安全,应用许多方法会涉及安全规则. 继承与委托是最常见的实现重用 通用功能 的面向 ...
- LibreOJ 6002 最小路径覆盖(最大流)
题解:最小路径覆盖=总点数减去最大匹配数,拆点,按照每条边前一个点连源点,后一个点连汇点跑最大流,即可跑出最大匹配数,然后减一减就可以了~ 代码如下: #include<queue> #i ...
- Task 回调
前正无生意,且记录Task回调之用法. using System; using System.Collections.Generic; using System.Diagnostics; using ...
- Setting property 'source' to 'org.eclipse.jst.jee.server:web' did not find a matching property原因
这个问题困扰了好久,虽然只是tomcat的一个警告,但强迫症让我总觉得不舒服,搜索了好多文章才找到知乎上一篇处理的最好的.另外:能找谷哥,尽量不要度娘,太浪费时间. 具体操作如下: 默认情况下,ser ...