现代C++简单介绍
C++ 是世界上最常用的编程语言之一。
编写良好的 C++ 程序是快速、高效的。
该语言比其他语言更加灵活,因为你可以使用它来创建各种应用,
包括有趣刺激的游戏、高性能科学软件、设备驱动程序、嵌入式程序和 Windows 客户端应用。
在过去的 20 多年中,C++ 已被用于解决许多这样的以及各种其他问题。
你可能不知道,越来越多的 C++ 程序员已经抛弃过时的 C 样式编程,改为使用先进的 C++。
C++ 的一个目标就是使程序既类型安全,又更易于编写、扩展和维护。
现代 C++ 强调:
1.基于堆栈的范围,而非堆或静态全局范围。
2.自动类型推理,而非显式类型名称。 auto ...
3.智能指针而不是原始指针。
4.std::string 和 std::wstring 类型,而非原始 char[] 数组。
5.标准模板库 (STL) 容器(例如 vector、list 和 map),而非原始数组或自定义容器。
6.STL 算法,而非手动编码的算法。
7.异常,可报告和处理错误条件。
8.使用 STL std::atomic<>,而非其他线程间通信机制的无锁线程间通信。
9.内联 lambda 函数,而非单独实现的小函数。
10.基于范围的 for 循环,编写以 for ( for-range-declaration : expression ) 形式
使用数组、STL 容器和 Windows 运行时集合的更可靠循环。for each 比 for 循环更整洁和易于使用,并且不容易发生意外错误。
for each (auto var in collection_to_loop)
{
}
C++ 又一次兴起,因为功能再次占据首要位置。
当程序员的工作效率很重要时,Java 和 C# 等语言是很好的选择,
但当功能和性能至关重要时,此类语言就暴露出了自身限制。
要实现高效率和强大功能,特别是在硬件有限的设备上,现代 C++ 无可匹敌。
int
4 个字节
整数值的默认选择。
double
8 个字节
浮点值的默认选择。
bool
1 个字节
表示可为 true 或 false 的值。
char
1 个字节
用于早期 C 样式字符串或 std:: 字符串对象中无需转换为 UNICODE 的 ASCII 字符。
wchar_t
2 个字节
表示可能以 UNICODE 格式进行编码的“宽”字符值(Windows 上为 UTF-16,其他操作系统上可能不同)。 这是用于 std::wstring 类型字符串的字符类型。
unsigned char
1 个字节
C++ 无内置 byte 类型。使用 unsigned char 表示字节值。
unsigned int
4 个字节
位标志的默认选项。
long long
8 个字节
表示非常大的整数值。
使用两个函数来推动程序的启动和终止: main 和 exit。
在 C++ 中,可通过多种方式退出程序:
调用 exit() 销毁所有static对象,清空所有缓冲区,关闭所有I/O,然后终止程序
调用 quick_exit()
调用 abort() 立刻终止,不清理
调用terminate()
从 main 执行 return 语句。
唯一“正确且具移植性”的main()
int main()
{
}
和
int main(int argc, char* argv[])
{
}
c++定义了一个隐晦的return 0;于main()终点。
现代C++简单介绍的更多相关文章
- [原创]关于mybatis中一级缓存和二级缓存的简单介绍
关于mybatis中一级缓存和二级缓存的简单介绍 mybatis的一级缓存: MyBatis会在表示会话的SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候 ...
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍
一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...
- 利用Python进行数据分析(4) NumPy基础: ndarray简单介绍
一.NumPy 是什么 NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生.在之前的随笔里已有更加详细的介绍,这里不再赘述. 利用 Python 进行数据分析(一)简单介绍 ...
- yii2的权限管理系统RBAC简单介绍
这里有几个概念 权限: 指用户是否可以执行哪些操作,如:编辑.发布.查看回帖 角色 比如:VIP用户组, 高级会员组,中级会员组,初级会员组 VIP用户组:发帖.回帖.删帖.浏览权限 高级会员组:发帖 ...
- angular1.x的简单介绍(二)
首先还是要强调一下DI,DI(Denpendency Injection)伸手获得,主要解决模块间的耦合关系.那么模块是又什么组成的呢?在我看来,模块的最小单位是类,多个类的组合就是模块.关于在根模块 ...
- Linux的简单介绍和常用命令的介绍
Linux的简单介绍和常用命令的介绍 本说明以Ubuntu系统为例 Ubuntu系统的安装自行百度,或者参考http://www.cnblogs.com/CoderJYF/p/6091068.html ...
- iOS-iOS开发简单介绍
概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的 ...
- iOS开发多线程篇—多线程简单介绍
iOS开发多线程篇—多线程简单介绍 一.进程和线程 1.什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ.Xcod ...
- iOS开发UI篇—UITabBarController简单介绍
iOS开发UI篇—UITabBarController简单介绍 一.简单介绍 UITabBarController和UINavigationController类似,UITabBarControlle ...
- Android开发自学笔记(Android Studio)—4.界面编程与View组件简单介绍
一.引言 Android应用开发最重要的一份内容就是界面的开发,无论你程序包含的内容多么优秀,如若没有一个良好的用户交互界面,最终也只是会被用户所遗弃.Android SDK提供了大量功能丰富的UI组 ...
随机推荐
- spring+shiro共享session完整小例子
之前写过一个,只不过那个不单纯,有人跑不通,所以今天整个纯粹的小例子. 要求你有Redis. 源码 GitHub 目录结构 因为这是个例子,仅仅为了体现共享session,所以权限认证部分没有加入处理 ...
- ThymeLeaf的eclipse插件安装
“Help”----“Install New Software...” 输入: http://www.thymeleaf.org/eclipse-plugin-update-site/ 一路Next, ...
- MySQL信息提示不是英文问题
安装好MySQL后,运行SQL的提示信息总不是英文mysql> select database; ERROR 1064 (42000): 安装好MySQL后,运行SQL的提示信息总不是英文 my ...
- Tomcat第一个站点介绍
背景 在讨论如何组织源码目录之前,很有必要对现有web站点的组织结构进行测试,特别是2.2版本的API,在服务器版本上是不同的,所以在2.2之后的版本中,所有的服务器版本都要求能够使用标准的压缩web ...
- IIS 错误:由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。
HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. 可能是缺少处理程序映射.默认情况 ...
- mysql数据库连接useSSL=true
web应用中连接mysql数据库时控制台会出现这样的提示: Establishing SSL connection without server's identity verification is ...
- python3 aes加解密
# encoding: utf-8 import xlrd import os import yaml import logging.config from Crypto.Cipher import ...
- JAVA-Enum 枚举
[参考]枚举类名建议带上 Enum 后缀,枚举成员名称需要全大写,单词间用下划线隔开. 说明:枚举其实就是特殊的类,域成员均为常量,且构造方法被默认强制是私有. 正例:枚举名字为 ProcessSta ...
- 6、JPA-映射-单向一对多
一个用户对应多个订单 实体类 Customer package com.jpa.yingshe; import javax.persistence.*; import java.util.HashSe ...
- 8.装饰模式(Decorator Pattern)
子类复子类,子类何其多 假如我们需要为游戏中开发一种坦克,除了各种不同型号的坦克外,我们还希望在不同场合中为其增加以下一种或多种功能;比如红外线夜视功能,比如水陆两栖功能,比如卫星定位功能等等.按类继 ...