C++设计开发规范(3):类型设计规范

本文介绍了C++中的类型设计规范,包括类、结构、接口和枚举的使用场景和设计原则。推荐根据对象的特性选择合适的类型,如使用基类表示抽象意义和共享成员,使用接口定义稳定的行为,使用结构定义小而简单的类型,使用枚举表示逻辑分类。此外,还强调了结构和类的默认构造函数、拷贝构造函数、赋值运算符和比较运算符的使用,以及接口和抽象类的设计注意事项。
摘要由CSDN通过智能技术生成
 
“一切以简单为美“
 
C++中的类型繁多,其中包括(具体)类、基类、接口、结构、枚举、数组等。在此规范中,我们不详细讨论抽象类和接口,因为这两个类型属于一个特殊的逻辑分组,和扩展性有关,我们在扩展性设计规范中进行讨论。
任何的编程语言都可以看成是一个类型系统。在这个类型系统中,每个类型都扮演这各自的职责,各有其意义:
n (具体)类:在遵循某个特定的开发封闭原则的前提下的对行为和属性的封装。使用class声明。
n 基类:在遵循某个特定的开发封闭原则的前提下的对行为和属性的适度封装。使用class声明。
n 接口:抽象了某个/某些特定的行为,为对象提供了一种抽象的分类准则,它应该是基本稳定的。使用interface声明。
n 结构:用于定义小而简单的类型。使用struct声明。
n 枚举:用于定义一小组值,这一小组值代表着一个逻辑分类。如一星期中的每天。
在类型系统中不同的类型适用于不同的用途,因此遵循着不同的规则,代表着不同的意义。
l 推荐使用基类,如果:
a.        实现某个特定的接口 ( 可选)
b.        对于子类,它的确具有抽象意义
c.        它通过与子类共享成员(属性、函数)或/和定义虚函数来实现抽象
d.        它具有/不具有状态
l 推荐使用抽象类,如果:
e.        具有基类的所有特征
f.         不能被实例化(至少具有一个纯虚函数)
l 推荐使用接口,如果:
a.        它代表了一类行为的抽象,这样的一类行为可以作为一种分类规则区别其他不同类的对象
b.        它的定义应该是基本稳定的,否则考虑使用抽象类而不是接口
c.        它定义功能而不是实现功能,不具有任何状态
d.        精心定义的接口只做一件事情
l 推荐使用结构,如果:
a.        它在逻辑上代表一个独立的值,与基本类型(int、double等)相似
b.        它不需要虚函数(包括虚析构函数)
c.        它总是在栈中被实例化,实例比较小而且生命周期比较段或经常被内嵌在其他对象中
l 推荐使用静态类,如果你设计的类具有下面的特征:
a.        它定义的所有的函数都是public static的
b.        它不需要被实例化
c.        它往往被用于定义一些帮助函数或基于简单性的考虑来整合某个特定的功能。
  要求区分接口、结构和类:
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值