C++ Primer笔记整理

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除外).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值