zoukankan      html  css  js  c++  java
  • 条款19:设计class犹如设计type

    1,新的type对象应该如何被创建和销毁?

    这会影响class的构造函数ctor和析构函数dtor,以及内存分配函数和释放函数

        //operator new

      //operator new[]

      //operator delete

      //operator delete[]

    2,对象的初始化和对象的赋值该有什么什么区别?

      初始化在于构造函数ctor

      对象的赋值在于assigment操作符//operator =

    3,新type的对象如果被passed by value意味着什么?

      意味着产生一个copy构造过程,//operator ()

    4,什么是新type的合法值?

      通常只有某些函数值集是有效的。那么你的class必须维护的约束条件,也就是决定了你的成员函数(特别是ctor和复制构造函数,setter函数)需要进行错误检查。

    5,新type是否需要配合某个继承图系?

      就是是否声明某个函数是否是virtual?尤其是dtor是否是virtual的?

    6,新type需要什么样的转换?

      如果你允许T1被隐式转换为T2,就需要在T1内写一个类型转换函数//operator T2,

      或者class T2内写一个non-explicit-one-argument(可被单一实参调用)的构造函数。

      如果需要显示转换,需要写出专门的转换函数,且不能是上面2种隐式方法中的任何一种;

    7,什么样的标准函数应该被禁止?

      声明为private

    8,是否提供一般化?

      template

  • 相关阅读:
    RT-thread内核之事件
    RT-thread内核之互斥量
    RT-thread内核之信号量
    RT-thread内核之进程间通信
    RT-thread内核之异常与中断
    RT-thread内核之IO设备管理系统
    RT-thread内核之小内存管理算法
    RT-thread内核之系统时钟
    RT-thread内核之定时器管理
    s19文件格式详解
  • 原文地址:https://www.cnblogs.com/li-daphne/p/6201248.html
Copyright © 2011-2022 走看看