• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
C++箴言:视类设计为类型设计
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
C++箴言:视类设计为类型设计
软件发布 C++箴言:视类设计为类型设计
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 编程技术 >> C/C++教程 >> C++箴言:视类设计为类型设计

C++箴言:视类设计为类型设计

添加时间: 2006-2-12 8:41:31  作者: C++教程  阅读次数:217   来源: http://www.d9soft.com

          在 C++ 中,就像其它面向对象编程语言,可以通过定义一个新的类来定义一个新的类型。作为一个 C++ 开发者,你的大量时间就这样花费在增大你的类型系统。这意味着你不仅仅是一个类的设计者,而且是一个类型的设计者。重载函数和运算符,控制内存分配和回收,定义对象的初始化和终结过程——这些全在你的掌控之中。因此你应该在类设计中倾注大量心血,接近语言设计者在语言内建类型的设计中所倾注的大量心血。

  设计良好的类是有挑战性的,因为设计良好的类型是有挑战性的。良好的类型拥有简单自然的语法,符合直觉的语义,以及一个或更多高效的实现。在 C++ 中,一个缺乏计划的类设计,使其不可能达到上述任何一个目标。甚至一个类的成员函数的执行特性可能受到它们是被如何声明的影响。

  那么,如何才能设计高效的类呢?首先,你必须理解你所面对的问题。实际上每一个类都需要你面对下面这些问题,其答案通常就导向你的设计的限制因素:

  你的新类型的对象应该如何创建和销毁?如何做这些将影响到你的类的构造函数和析构函数,以及内存分配和回收的函数(operator new,operator new[],operator delete,和 operator delete[])的设计,除非你不写它们。

  对象的初始化和对象的赋值应该有什么不同?这个问题的答案决定了你的构造函数和你的赋值运算符的行为和它们之间的不同。这对于不混淆初始化和赋值是很重要的,因为它们相当于不同的函数调用。

  以值传递(passed by value)对于你的新类型的对象意味着什么?记住,拷贝构造函数定义了一个新类型的传值(pass-by-value)如何实现。 

  你的新类型的合法值的限定条件是什么?通常,对于一个类的数据成员来说,仅有某些值的组合是合法的。那些组合决定了你的类必须维持的不变量。这些不变量决定了你必须在成员函数内部进行错误检查,特别是你的构造函数,赋值运算符,以及 "setter" 函数。它可能也会影响你的函数抛出的异常,以及你的函数的异常规范(exception specification)(你用到它的可能性很小)。

 

上下文章:

 

上一篇文章: C#利用正则表达式实现字符串搜索 下一篇文章: 论C/C++函数间动态内存的传递

相关文章:

  • 美不胜收 Photoshop设计令人惊艳分形图案
  • Word设计师欲重返太空 明春或能实现(图)
  • 复杂局域网进行综合布线设计与施工
  • Photoshop设计教程:UI界面的设计
  • Photoshop教程:绘制服装款式设计效果图

相关软件:

  • 超级DIY设计器 V7.0 测试版
  • EliteReport报表设计软件 v1.1 build 20060612
  • 天下第一签个性签名设计 V1.2
  • 机械设计系统 V3.11
  • C/C++程序设计学习与实验系统 2008.14
  • 水泥混凝土配合比设计 V3.0.2

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

编程技术分类导航

  • ASP & ASP.NET教程
  • PHP教程
  • JSP教程
  • C/C++教程
  • VB & VB.NET教程
  • VC教程
  • Delphi教程
  • BCB教程
  • VFP教程
  • PB教程
  • JAVA教程
  • XML教程
  • C#教程
  • CGI教程

本类经典文章推荐

  • 使用C++ TR1 生成随机数
  • C/C++作用域引申出的编码规范
  • 程序宝典:C++学习感想
  • C语言:黑客学员必修课(一)
  • C语言:黑客学员必修课(二)
  • 使用多线程实现数据实时采集
  • C++编程中的四个调试小技巧
  • C语言程序设计基础之联合
  • 学C++不得不看的一篇文章
  • C,曾经的程序员梦

C/C++教程阅读排行

  • 学C++不得不看的一篇文章
  • 水滴石穿C语言之可变参数问题
  • C语言:黑客学员必修课(一)
  • 我的Visual C++入门之路
  • 程序宝典:C++学习感想
  • C++中的struct专题研究
  • 初学者学习C++的50条忠告
  • C++箴言:只要可能就用const
  • C++编程中的四个调试小技巧
  • 强大的语言——C入门

编程技术阅读总排行

  • VB入门教程之一
  • Java连接数据库实例
  • VC++之List Box/Check List Box控...
  • 第二章 PowerBuilder 入门之创建新...
  • VC++ List Ctrl控件
  • 第一章 什么是PowerBuilder
  • VC++ Combo Box/Combo Box Ex控件
  • 学C++不得不看的一篇文章
  • VB入门教程之二
  • VC++之Button控件

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有