• 1.21 C++复习


    ------------恢复内容开始------------

    ------------恢复内容开始------------

    1. 一个变量数值上设定存在两阶段。初始化->赋值。

    2. overloading的函数不能有歧义。
    complex(double a=0, double b = 0) //有初始值 可以被覆盖也可以无参数构造。 eg: complex c1() ;

    3. double real() const { return re; }. //表示此函数不改变 object内部数据内容

    4. friend  函数名()  //指明友元函数所能操纵的private data

    5. 操作符就是一种函数,  c1 += c2 (c1为左操作数,c2为右操作数)。重载的时候查看左操作数是否重写函数。

    6. 成员函数参数中藏有一个this pointer(指向调用者)

    7. return by reference。       

    8. 拷贝函数和拷贝赋值,默认是1bit,1bit复制。

    9. complex c1(1,2)//     空间开辟在stack上,被称为localobj,析构函数自动调用

     new 分成3步:1. 分配空间(调用void* mem = operator new(sizeof(Class)) 约等于 malloc

             2. 转型 pc = static_cast<Complex*>(mem);

             3. 调用构造函数 pc->Complex::Complex(1,2);  //Complex::Complex(this,1,2) 成员函数woc,他个der含有一个thispointer 

      delete 分为两步:

            1.调用析构函数 String::~String(ps);  //

            2.释放内存  operator delete(ps);              //底层调用free 

     PS:new array[N] 需要对应 delete array[N];  目的是调用足够数量的析构函数。

    10. 不属于任何一个scope的被称为全局对象。

    Static function.  与一般函数一样只在内存中有一个,但自身不具备this指针,他只能处理静态数据。

            static的调用:1. 通过obj 2. 通过 classname 调用。

    Static variable    class内声明,class外定义。  只有在定义的时候才分配内存 //且只存在一份 

            函数内创建过 static variable之后,才会创建。

    11. funciton template(函数模版)    

    ------------恢复内容结束------------

    设计模式(composition 复合)

    1. adapter(适配器)

        container ---> component  // 容器含有一个内在类

      构造时,先构造内部component 再构造外部container。//默认component的构造函数调用default版

      析构时,先析构外部container 再析构内部component //相反

    2. Delegation(委托)(composition by reference)

       container ----> component //容器中含有一个 pointer 指向component 

      与composition 复合不同的地方,内部所含的component 其生命开始不一定是随着container的出现而出现,而是在真正调用的它的时候才出现

      copy on rid. 在需要修改的瞬间,复制出一个。

    3. Inheritance()

      public 继承(还可以 private protected继承),创建子类前先得有父类,顾会先调用父类constructor。//析构则由外而内,

     因此,父类的deconstructer 必须是虚函数。 只有这样,才能在释放子类的时候动态绑定到他

      

     虚(virtual)函数

     virtual (return type) func() =0 //纯虚函数,子类一定要定义

     virtual (return type) func()// 有定义,子类不一定要重写,只是被开放了权限

    non-virtual 函数则不希望子类重写  

     

    Delegation + inheritance

    文件系统设计模式  //primitive 类比文件item,composite类比目录。目录中既需要文件有需要子集目录。

     Prototype 模式。(hard 不理解。)

    ------------恢复内容结束------------

  • 相关阅读:
    一个JavaScript反射使用的例子
    JQuery中的each()的使用
    WebHome < Visualization < Virtual Test Facility
    UsageHdf < Amroc < Virtual Test Facility
    批量去除输出数据文件名前面的"output“
    官网EI数据库更新
    NASA CEA 安装指南
    FORTRAN学习网站
    Ubuntu下批量使用Tecplot的preplot命令对数据进行处理
    FORTRAN和C语言数组循环顺序
  • 原文地址:https://www.cnblogs.com/LuoRuidiLoveMiku/p/15866261.html
Copyright © 2020-2023  润新知