美文网首页
Boolan_C++_Big Three

Boolan_C++_Big Three

作者: FlyTheKite | 来源:发表于2017-07-26 23:04 被阅读8次

    str3(str1) , 拷贝 构造。

    str3 = str1 , 拷贝 赋值。编译器, 默认提供。

    类里面 带指针,

    编译器 提供的 默认拷贝 构造, 直接 拷贝 指针。
    所以, 一定要 重写。

    String 类, 有 指针,

    有一个 动态 分配的 过程。


    String( const char* cstr = 0 );
    // 构造函数

    String( const String& str );
    // 构造函数 , 拷贝 构造。
    copy ctor

    String& operator = ( const String& str );
    // 操作符 重载, 拷贝 赋值。
    copy op=
    (
    检测 自我 继承,( self assignment )

    正确性 + 效率

    提高 效率, 更重要的是 , ( 不写, 结果 可能会 出错。 )

    )

    ~String();

    // 析构函数

    析构 函数 调用,
    当对象 离开 他的 作用域。


    // 要在 里面 清理, delete, 因为 动态 分配。

    一个 字符串 多长, 的 计算方法:

    我不知道 多长, 但是 最后面 有一个 结束 符号, '\0' .
    C , C++

    后面 没有 结束 符号, 前面 多一个 length.

    Pascal

    object_Class_A = object_Class_B ;
    // 有 别名 效果, alias

    浅拷贝: 指针 拷贝。
    深拷贝 : 值拷贝。

    Stack, 栈,是存在于 某作用域 scope 的 ,

    一块 内存空间 memory space .

    在函数 本体 function body 内,
    声明的 任何变量。

    auto object, 因为 他会被 自动 清理。

    static 静态,

    static local object 的 生命期。

    Heap, 堆,

    system heap ,
    是 由 操作系统 提供的 一块 global 内存空间,
    程序 可动态分配 dynamic allocated ,
    从中 获得 若干 区块 blocks .

    new 出来的 对象。

    注意, 内存泄漏。

    指针释放了, 指针 指向的 空间 还在。

    Global Objects
    全局对象

    任何 大括号 之外的
    对象。

    谁 调用 这个 函数,

    那个 谁, 就是 this .

    相关文章

      网友评论

          本文标题:Boolan_C++_Big Three

          本文链接:https://www.haomeiwen.com/subject/ublakxtx.html