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

  • 相关阅读:
    牛客多校第九场 && ZOJ3774 The power of Fibonacci(二次剩余定理+斐波那契数列通项/循环节)题解
    2019牛客多校第九场B Quadratic equation(二次剩余定理)题解
    URAL 1132 Square Root(二次剩余定理)题解
    牛客多校第九场H Cutting Bamboos(主席树 区间比k小的个数)题解
    配置android.support.v7.widget.Toolbar 搜索框样式
    Google之路
    Editplus 竖选,竖插入技巧
    JNDI
    Spring Hibernate Transaction示例
    AOP 入门
  • 原文地址:https://www.cnblogs.com/txg198955/p/3999074.html
Copyright © 2020-2023  润新知