C++帮助文档(自己写的)

以下所有记录几乎都是摘抄自《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

 

posted on 2017-09-30 11:08  wuduojia  阅读(845)  评论(0编辑  收藏  举报

导航