以下所有记录几乎都是摘抄自《C++ primer 5th 中文》

auto   类型说明符   P61

特点:

1.     定义的变量必须有初始值

2.     通过初始值来推算变量的类型

3.     在一条语句中声明多个变量时,这些变量的基本数据类型必须一样。(注意,并没有说限定符等修饰符也要一样)

4.     编译器推断出来的auto类型有时候和初始值并不完全一样,会适当改变结果类型使其更符合初始化规则。

5.     一般会忽略顶层const,保留底层const

为什么要有它:

编程时常常需要把表达式的值赋给变量,这就要求在声明变量的时候清楚地知道表达式的类型。然而做到这一点并非那么容易,有时甚至根本做不到。为此有了auto类型说明符。

decltype 类型指示符 P62

特点:

1.编译器分析表达式并得到它的类型,却不实际计算表达式的值

2.处理顶层const和引用的方式与auto有点不同:如果其使用的表达式是一个变量,则返回该变量的类型(包括顶层const和引用在内)

3.可以不初始化,但是有些特殊的必须初始化,比如引用。

为什么要有它:

希望从表达式的类型推断出要定义的变量类型,但是不想用该表达式的值初始化变量。

const 常量限定符(修饰类型) P53

constexpr 类型 (修饰表达式)     P59

=const expression

常量表达式=值不会改变并且在编译过程就能得到计算结果的表达式

Void*指针  P50

1.只能用来和别的指针比较、作为函数的输入或输出、或者赋给另一个void*指针。

2,可用于存放任意对象地址,但我们不知道这个地址里的到底是什么对象

string P76、77

初始化:

#include <iostream>
#include <string>
using std::cout;
using std::endl;
using std::string;
int main()
{
string s1;
string s2(s1);
string s3 = s1;
string s4("value");
string s5 = "value";
string s6(10, 'c');
return 0;
}

操作:

Struct  定义类的关键字  P64

Struct sales_data

{

。。。。

};

关键字紧跟类名和类体(类体可空)

typedef 类型别名(type alias)  P60

=type definition

C++11中可以用别名声明来实现:

using xx=xxx;

特点:

1.类型别名和其替代的类型名等价(等价的意思不是把类型别名替换成它本来的样子去理解)

为什么要有它:

让复杂的类型名字变得简单明了、易于理解和使用,还有助于程序员清楚地知道使用该类型的真实目的。

预处理器功能  

头文件保护符   P68

=header guard

#ifndef 大写头文件名

#define 大写头文件名

............

#endif

#include 

#include 头文件名

预处理器看到这个标记时就会用指定的头文件内容替代#include

C++帮助文档(自己写的)的更多相关文章

  1. CsvHelper文档-3写

    CsvHelper文档-3写 不用做任何设置,默认的情况下,csvhelper就可以很好的工作了.如果你的类的属性名称和csv的header名称匹配,那么可以按照下面的例子写入: var record ...

  2. app开发需求文档怎么写

    我们在开发app前都会做需求分析,这个app开发需求文档怎么写呢?一般可以从这几点入手:确定APP方案的目标,APP方案的受众分析,APP开发方案功能设计,APP的操作系统说明方案,APP是是否是原生 ...

  3. document.write 向文档中写内容,包括文本、脚本、元素之类的,但是它在什么时候执行不会覆盖当前页面内容尼?

    当你打开一个页面,浏览器会 调用 document.open() 打开文档 document.write(...) 将下载到的网页内容写入文档 所有内容写完了,就调用 document.close() ...

  4. 用C++向一个txt文档中写数据

    bool CMaked::WriteFileMake(CString filePath, const char *isChange) { ofstream file; //filePath为该txt文 ...

  5. PRD文档怎么写

    昨天学习PMP的相关文档,正好看到里面讲的PRD文档是怎么写的 就把一些学习过程,思维方式,还有用到的工具给记录下来 方便自己以后需要的时候,再去查阅,再读这个教程的时候,我顺便用脑图画了一下 脑图工 ...

  6. B端产品需求文档怎么写?

    B端,或者2B,一般指的是英文中的 to busniss,中文即面向企业的含义.与B端相对应的,是C端,或者2C,同样指的是英文中的 to customer,即面向消费者的意思.因此,人们平常所说的B ...

  7. Qt 利用XML文档,写一个程序集合 二

    接上一篇文章https://www.cnblogs.com/DreamDog/p/9213915.html XML文档的读写 一个根节点,下面每一个子节点代表一个子程序,内容为子程序名字,图标路径,e ...

  8. Qt 利用XML文档,写一个程序集合 一

    接到领导需求安排,说公司未来的硬件设备会越来越多,与每个设备对应的设备检测和设置程序也会增多.导致软甲太多,不好掌控.所以希望做一个完整的软件,但是呢,每个子程序还得独立,应为每个用户购买的设备不是一 ...

  9. 【随笔】这段时间没有写博客是因为一边看Qt5的帮助文档一边写小程序

    长话短说,因为和做程序员的以前的同学联系了一下,知道自己有很多不足,加之接到一个培训机构的人打来的电话稍微打击了一下,虽然那个人满嘴跑火车想装做和我很谈得来,但是我依然看到了自己没有写过任何命令行以外 ...

  10. Qt 利用XML文档,写一个程序集合 四

    接上一篇https://www.cnblogs.com/DreamDog/p/9214067.html 启动外部程序 这里简单了,直接上代码吧 connect(button,&MPushBut ...

随机推荐

  1. 怎样删除Tomcat下已经部署的项目

    lz说的是把web项目部署到tomcat之中,要把它删除..很简单,找到webapps文件(tomcat的根目录)下把它删除即可.. 2.Tomcat 6.0\webapps\项目名 只要在把这个目录 ...

  2. A. Polo the Penguin and Strings

    time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...

  3. HTML5+CSS3设计界面

    近期在做一个关于房屋装修的手机上的项目,前台是用H5+C3完毕的,挂在微信上.全部相对来说不是非常难. 这段时间通过敲Html5+Css3.分享一些自己觉得值得学习的知识. 都非常easy.自己操作一 ...

  4. 2015 Multi-University Training Contest 4 1001 Olympiad

    代码: #include<cstdio> #include<cstring> #include<set> using namespace std; int vis[ ...

  5. centos7 安装8188eu驱动小记

    最小化安装把lsusb和lspci装上 使用lsusb 和lspci的命令, centos上的安装命令: yum -y install usbutils yum -y install pciutils ...

  6. android简易双屏支持【转】

    本文转载自:http://blog.csdn.net/sfrysh/article/details/7463339 抱歉,之前说xorg的exa更新的时候恐怕一直不会更新了,没有做xorg开发了.转向 ...

  7. ZOJ 1414:Number Steps

    Number Steps Time Limit: 2 Seconds      Memory Limit: 65536 KB Starting from point (0,0) on a plane, ...

  8. go语言---传值和传引用

    go语言---传值和传引用 https://blog.csdn.net/cyk2396/article/details/78893828 1.定义: b = a; b.modify(); 如果b的修改 ...

  9. BZOJ_1115_[POI2009]石子游戏Kam_博弈论

    BZOJ_1115_[POI2009]石子游戏Kam_博弈论 Description 有N堆石子,除了第一堆外,每堆石子个数都不少于前一堆的石子个数.两人轮流操作每次操作可以从一堆石子中移走任意多石子 ...

  10. 杂项-Java:Struct

    ylbtech-杂项-Java:Struct Struts是Apache软件基金会(ASF)赞助的一个开源项目.它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目.它通过 ...