加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网_福州站长网 (https://www.0591zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 正文

分享一下8年C++面向对象设计的经验体会

发布时间:2020-12-30 18:56:04 所属栏目:创业 来源:网络整理
导读:副标题#e# 六年前,我刚热恋“面向对象”(Object-Oriented)时,一口气记住了近十个定义。六年后,我从几十万行程序中滚爬出来准备写点心得体会时,却无法解释什么是“面向对象”,就象说不清楚什么是数学那样。软件工程中的时髦术语“面向对象分析”和“

  有不少人编程时用拼音给函数或变量命名,这样做并不能说明你很爱国,却会让用此程序的人迷糊(很多南方人不懂拼音,我就不懂)。程序中的英文一般不会太复杂,用词要力求准确。匈牙利命名法是Microsoft 公司倡导的[Maguire 1993],虽然很烦琐,但用习惯了也就成了自然。没有人强迫你采用何种命名法,但有一点应该做到:自己的程序命名必须一致。

  以下是我编程时采用的命名约定:

  (1)宏定义用大写字母加下划线表示,如MAX_LENGTH;

  (2)函数用大写字母开头的单词组合而成,如SetName,GetName ;

  (3)指针变量加前缀p,如*pNode ;

  (4)BOOL 变量加前缀b,如bFlag ;

  (5)int 变量加前缀i,如iWidth ;

  (6)float 变量加前缀f,如fWidth ;

  (7)double 变量加前缀d,如dWidth ;

  (8)字符串变量加前缀str,如strName ;

  (9)枚举变量加前缀e,如eDrawMode ;

  (10)类的成员变量加前缀m_,如m_strName,m_iWidth ;

  对于int,float,double 型的变量,如果变量名的含义十分明显,则不加前缀,避免烦琐。如用于循环的int 型变量i,j,k ;float 型的三维坐标(x,y,z)等。

  2.2 使用断言

  程序一般分为Debug 版本和Release 版本,Debug 版本用于内部调试,Release 版本发行给用户使用。断言assert 是仅在Debug 版本起作用的宏,它用于检查“不应该”发生的情况。以下是一个内存复制程序,在运行过程中,如果assert 的参数为假,那么程序就会中止(一般地还会出现提示对话,说明在什么地方引发了assert)。

//复制不重叠的内存块  
void memcpy(void *pvTo,void *pvFrom,size_t size)  
{  
void *pbTo = (byte *) pvTo;  
void *pbFrom = (byte *) pvFrom;  
assert( pvTo != NULL && pvFrom != NULL );  
while(size - - > 0 )  
*pbTo + + = *pbFrom + + ;  
return (pvTo);  
}  

assert 不是一个仓促拼凑起来的宏,为了不在程序的Debug 版本和Release 版本引起差别,assert 不应该产生任何副作用。所以assert 不是函数,而是宏。程序员可以把assert 看成一个在任何系统状态下都可以安全使用的无害测试手段。

(编辑:安卓应用网_福州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读