1. 迭代器:迭代器是一种对象,它可以看做是游标,用来遍历标准模板库中的部分或者全部元素。 每个迭代器指向容器中确定的地址,此外,迭代器还提供一些基本操作符:*、++、==、!=、=。
2. 模板:是创建类或函数的蓝图或者公式,比如(STL里面的vector,map,set等),分为函数模板和类模板,函数模板是一种独立于类型的函数,类模板是一种独立于类型的类,模板是泛型编程的基础。
3. static:static数据成员是存储在程序的静态存储区,而并不是在栈空间上,在类中定义static成员,static成员它不像普通的数据成员,static数据成员独立于该类的任意对象而存在,每个static数据成员是与类关联的对象,并不与该类的对象相关联!(http://wenku.baidu.com/link?url=I-FCVFpHbP2oyCt1Gjb1X5xHk4P475dVU3j8rWd4b4VSuDWd86LdbC7bdYskZdt3CK8PxoldcXDzWPhh9l2O2FNQYdbtK3xfobyItRatDu)
4. 拷贝构造函数是一种特殊的构造函数,函数的名称必须和类名称一致,它必须的一个参数是本类型的一个引用变量,如(CExample(const CExample&))。(http://www.2cto.com/kf/201207/143005.html)
5. 对于一个空类,编译器默认生成四个成员函数:默认构造函数、析构函数、拷贝构造函数、赋值函(http://www.2cto.com/kf/201207/143005.html)
6. 拷贝构造函数和赋值函数非常容易混淆,常导致错写、错用。拷贝构造函数是在对象被创建时调用的,而赋值函数只能被已经存在了的对象调用。以下程序中,第三个语句和第四个语句很相似,你分得清楚哪个调用了拷贝构造函数,哪个调用了赋值函数吗?
String a(“hello”);
String b(“world”);
String c = a; // 调用了拷贝构造函数,最好写成 c(a);
c = b; // 调用了赋值函数
本例中第三个语句的风格较差,宜改写成String c(a) 以区别于第四个语句。
7.堆和栈的区别:(http://blog.csdn.net/hairetz/article/details/4141043)
栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。
堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。
全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的 全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另 一块区域,
程序结束后由系统释放。
8. 构造函数可以访问一般函数,一般函数不可以访问构造函数.
9.类中的成员,只要被执行一定要被对象调用(static除外).