引用
一种**复合类型(compound type)**,在变量名前添加“&”符号来定义。
const引用可以初始化为不同类型的对象或者初始化为右值。const引用为只读。
int i = 42;
const int &r = 42;
const int &r2 = r + i;
//不同类型
double dval = 3.14;
const int &r3 = dval;
//可转换为:
int temp = dval;
const int &r3 = temp;
typedef
typedef double wages;
typedef wages salary;
wages hourly;
目的:
- 隐藏实现,强调目的
- 简化定义类型
- 允许一种类型实现多个目的
enum
定义:enum open_modes {input, output, append};
**枚举成员(enumerator)**默认第一个为0,后面递增。枚举成员为常量表达式,不能改变。
头文件
头文件用于声明而不是用于定义,声明用extern
来表示。定义有三个例外,头文件可以定义类、值在编译时就已经知道的const对象和inline函数。
设计头文件时,应使其可以多次包含在同一源文件内,保证其中的类不会被多次定义。可以使用头文件保护符(header guard)
#ifndef SALE
#define SALE
//Definition of SALE
#endif
string
引入:#include<string>
初始化:
string s1;
string s2(s1);
string s3("hello");
string s4(n, 'c') // n个c
读写:cin或getline(cin, s)
操作:
- s.empty(),返回true or false
- s.size(),返回的是string::size_type,定义为与unsigned型具有相同的含义,不能随意赋值给int
- 关系操作符,比较,赋值,相加或连接