设计class 的时候,需要好好考虑下面的问题:

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

2、对象的初始化和对象的赋值该有什么样的差别?

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

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

5、新type需要某个继承体系吗?

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

7、什么样的操作符和函数对新type的对象是合理的?

8、该如何访问新type对象的成员?

9、什么是新type未声明的接口?

10、新type有多么一般化?是否应该使用template?

【19】设计class犹如设计type的更多相关文章

  1. EC笔记:第4部分:19、设计class犹如设计type

    设计一个class,应该考虑以下问题: 新type的对象应该怎样创建和销毁? 构造函数 析构函数 内存分配 内存释放 对象的初始化和对象的赋值应该有什么样的差别? 拷贝构造函数 赋值运算符 新对象如果 ...

  2. Effective C++ -----条款19:设计class犹如设计type

    Class的设计就是type的设计.在定义一个新type之前,请确定你已经考虑过本条款覆盖的所有讨论主题. 新type的对象应该如何被创建和销毁? 对象的初始化和对象的赋值该有什么样的区别? 新typ ...

  3. Effective C++(19) 设计class犹如设计type

    问题聚焦:     这一节不涉及代码,但是我们需要明确的一点是,思想比代码要重要得多.     设计优秀的classes是一项艰巨的工作,就像设计好的types一样.     我们应该带着和“语言设计 ...

  4. 条款19:设计class犹如设计TYPE(Treat class design as type design)

    NOTE: 1.Class 的设计就是type的设计.在定义一个新type之前,请确认自己已经考虑过本条款所有主题(具体参考effective c++).

  5. 条款19:设计class犹如设计type

    1,新的type对象应该如何被创建和销毁? 这会影响class的构造函数ctor和析构函数dtor,以及内存分配函数和释放函数   //operator new //operator new[] // ...

  6. [Effective C++ --019]设计class犹如设计type

    前言 我们在编写程序的时候,无论哪一种语言,总是会告诉你这种语言应该有的类型.我们将它们直接拿来使用,可是从来没有考虑过这些类到底是怎么设计出来的! 所幸的是:在OOP中,每当我们定义一个新的clas ...

  7. Mysql表的约束设计和关联关系设计

    https://blog.csdn.net/u012750578/article/details/15026677 Mysql表的约束设计和关联关系设计 ======================表 ...

  8. (转)Android Binder设计与实现 – 设计篇

    原文地址(貌似已打不开):Android Binder设计与实现 – 设计篇 ------------------------------------------------------------- ...

  9. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(43)-工作流设计-字段分类设计

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(43)-工作流设计-字段分类设计 系列目录 建立好42节的表之后,每个字段英文表示都是有意义的说明.先建立 ...

随机推荐

  1. poj 1426 Find The Multiple( bfs )

    题目:http://poj.org/problem?id=1426 题意:输入一个数,输出这个数的整数 倍,且只有0和1组成 程序里写错了一个数,结果一直MLE.…… #include <ios ...

  2. freemarker跳出循环

    break语句跳出当前循环,如下: <#list table.columns as c>             <#if c.isPK>                 &l ...

  3. BZOJ3232: 圈地游戏

    题解: 神题一道... 题解戳这里:http://hi.baidu.com/strongoier/item/0425f0e5814e010265db0095 分数规划可以看这里:http://blog ...

  4. [swustoj 327] 最小的最大与最大的最小

    最小的最大与最大的最小(0327) Time limit(ms): 2500 Memory limit(kb): 65535 Submission: 329 Accepted: 18   问题描述 又 ...

  5. 如何从Linux源码获知版本信息

    /*************************************************************************** * 如何从Linux源码获知版本信息 * 声明 ...

  6. light工具

    环境变量 C:\Users\zhangqm\AppData\Roaming\npm\; 安装 npm install -gd jresplus 不要用npm install -gd light pro ...

  7. 内存映射 madvise mmap

    http://linux.die.net/man/2/madvise mmap && madvise的配合使用 mmap和madvise一起使用例子 mmap的作用是将硬盘文件的内容映 ...

  8. IoSkipCurrentIrpStackLocation .(转)

    原文链接:http://m.blog.csdn.net/blog/ruanben/19758769# 当驱动被分层以后,他们被注册到一个chain中,IRP会在这个chain中传递,从最上面,到最下面 ...

  9. CSLA的项目结构(一)

    由于我也是边看边学,在很多概念不是很清晰的情况下,也不好将书中的大段内容全部摘抄过来,所以结合项目源码先分析再总结,就成目前比较可行方案,第一篇先从项目结构入手. 项目源码下载后,主要的功能集中在Co ...

  10. k-近邻分类的Python实现

    参见<机器学习实战> # -*- coding:cp936 -*- #=========================================================== ...