zoukankan      html  css  js  c++  java
  • Effective C++

    在对象创建的时候调用构造函数,在对象销毁的时候调用析构函数

    1、以对象管理资源

    2、如果你打算在一个内含"reference 成员"的class内支持赋值操作,你必须自己定义copy assignment操作符。(内含const 成员的class 也是如此)

    3、析构函数绝对不要吐出异常,如果一个被析构函数调用的函数有可能突出异常,析构函数应该捕捉任何异常,然后吞下他们(不传播)或结束程序。

    4、令operator= 返回一个reference to *this;

    5、尽量以pass-by-reference-to-const 代替 pass-by-value(前者更为高效);对于内置类型:使用pass-by-value更为安全。

    6、绝不要返回pointer或reference指向一个local stack对象,(或返回reference指向一个heap-allocated对象,或返回pointer或reference
    指向一个local static 对象)而有可能同时需要多个这样的对象。

    19、new type like class
    Thinging of this:
    新type的对象应该如何被创建和销毁?
    对象的初始化和对象的赋值应该有什么样的差别?
    新type如果被passed-by-value(以值传递),意味着什么?
    什么是新type的合法值?
    你的心type需要配合某个继承图系?
    你的新type需要什么样的转换?
    什么样的操作符和函数对此新type而言是合理的?
    什么样的标准函数应该驳回?
    谁该取用新type的成员?
    什么是新type的未声明接口?
    你的新type有多么一般化?

    可使用using 声明式或inline转交函数。(using Base::fun1;或 Base::fun1())

    24、若你需要某个函数的所有参数进行类型转换(包括this指针所指的隐喻参数),那这个函数必须是non-member.

    36、绝不重新定义继承而来的 non-virtual 函数。

    37、绝对不要重新定义一个继承而来的缺省参数值,因为缺省参数值都是静态绑定,而virtual函数(唯一该覆写的)却是动态绑定。

    43、请使用关键字typename标识嵌套从属类型名称;但不得在base class lists(基类列)
    或 member initialization list(成员初始列)内以typename作为base class 修饰符。

    44、因参数类型(type parameters)而造成的代码膨胀,往往可降低,做法是让带有完全相同二进制表述的具现类型(instantiation types)共享实现码

    5中迭代器分类:Input 迭代器
    Output 迭代器
    forward 迭代器
    Bidrectional 迭代器
    random access 迭代器

    /* 带有stl容器成员的结构体,不能使用memset等进行初始化,
    会破坏容器的内部链,从而不能进行迭代器遍历操作*/


    /******************************************************/

    1、类型定义(typedef)和枚举(enum)
    2、常量(const static 数据成员)
    3、构造函数
    4、析构函数
    5、类方法(包括静态方法)
    6、数据成员(静态常量除外)

    /******************************************************/

  • 相关阅读:
    JAVA语言中冒号的用法
    Tamper Data 安装与使用
    HTTP协议缓存策略深入详解之ETAG妙用
    HTTP协议
    HTTP协议----ETag
    super 使用以及原理
    __slots__用法以及优化
    归并排序详解(Python | Java实现)
    周刷题第二期总结(Longest Substring Without Repeating Characters and Median of Two Sorted Arrays)
    周刷题第一期总结(two sum and two numbers)
  • 原文地址:https://www.cnblogs.com/shuang0109/p/9831300.html
Copyright © 2011-2022 走看看