C++箴言:视类设计为类型设计
添加时间: 2006-2-12 8:41:31 作者: C++教程 阅读次数:217 来源: http://www.d9soft.com
设计良好的类是有挑战性的,因为设计良好的类型是有挑战性的。良好的类型拥有简单自然的语法,符合直觉的语义,以及一个或更多高效的实现。在 C++ 中,一个缺乏计划的类设计,使其不可能达到上述任何一个目标。甚至一个类的成员函数的执行特性可能受到它们是被如何声明的影响。
那么,如何才能设计高效的类呢?首先,你必须理解你所面对的问题。实际上每一个类都需要你面对下面这些问题,其答案通常就导向你的设计的限制因素:
你的新类型的对象应该如何创建和销毁?如何做这些将影响到你的类的构造函数和析构函数,以及内存分配和回收的函数(operator new,operator new[],operator delete,和 operator delete[])的设计,除非你不写它们。
对象的初始化和对象的赋值应该有什么不同?这个问题的答案决定了你的构造函数和你的赋值运算符的行为和它们之间的不同。这对于不混淆初始化和赋值是很重要的,因为它们相当于不同的函数调用。
以值传递(passed by value)对于你的新类型的对象意味着什么?记住,拷贝构造函数定义了一个新类型的传值(pass-by-value)如何实现。
你的新类型的合法值的限定条件是什么?通常,对于一个类的数据成员来说,仅有某些值的组合是合法的。那些组合决定了你的类必须维持的不变量。这些不变量决定了你必须在成员函数内部进行错误检查,特别是你的构造函数,赋值运算符,以及 "setter" 函数。它可能也会影响你的函数抛出的异常,以及你的函数的异常规范(exception specification)(你用到它的可能性很小)。
上下文章:
上一篇文章: C#利用正则表达式实现字符串搜索 下一篇文章: 论C/C++函数间动态内存的传递
相关文章:

