xyjzsh

c++编程习惯(1)

1.尽量使用一个构造函数。
原因:如果使用多个构造函数,可能导致在有很多个实例变量的时候没有在所有的构造函数中初始化,从而造成错误!
可以用默认值的方法来达到提供默认构造函数。
2.在考虑跨平台时要尽量不使用int,unsigned系列的类型,因为不同平台对它们所占的字节数不一定相同。
3.技巧:使用
do
{
}while(0);
这样就可以在合适的时候break。然后在while后面做最后的处理。
class A
{
.....
};

4.对于数组初始化时可以用
A arr[10]={0};
或者memset(arr,0,sizeof(arr));
而尽量不要使用memset(arr,0,10*sizeof(A));
在用第二种方法memset(arr,0,10*sizeof(A))时在A的名称变化或者数组大小变化的时候都要修改。
但要特别注意
如果 A *a = new A[10];
就一定要用memset(a,0,10*sizeof(A));因为a是指针,所以sizeof(a)为4。


posted on 2010-11-23 11:41 呆人 阅读(555) 评论(2)  编辑 收藏 引用 所属分类: 编程习惯系列

评论

# re: c++编程习惯(1) 2010-11-23 22:11 李现民

A arr[10]={0}; 的生成汇编中就调用了memeset,但前者比后者还多了一个赋值,因此还要稍慢一点 :D  回复  更多评论   

# re: c++编程习惯(1) 2010-11-24 13:23 呆人

谢谢您的指教!我在以后的编程中会注意的!!@李现民
  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2010年11月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜