1.盡量使用一個(gè)構(gòu)造函數(shù)。
原因:如果使用多個(gè)構(gòu)造函數(shù),可能導(dǎo)致在有很多個(gè)實(shí)例變量的時(shí)候沒有在所有的構(gòu)造函數(shù)中初始化,從而造成錯(cuò)誤!
可以用默認(rèn)值的方法來達(dá)到提供默認(rèn)構(gòu)造函數(shù)。
2.在考慮跨平臺(tái)時(shí)要盡量不使用int,unsigned系列的類型,因?yàn)椴煌脚_(tái)對它們所占的字節(jié)數(shù)不一定相同。
3.技巧:使用
do
{
}while(0);
這樣就可以在合適的時(shí)候break。然后在while后面做最后的處理。
class A
{
.....
};
4.對于數(shù)組初始化時(shí)可以用
A arr[10]={0};
或者memset(arr,0,sizeof(arr));
而盡量不要使用memset(arr,0,10*sizeof(A));
在用第二種方法memset(arr,0,10*sizeof(A))時(shí)在A的名稱變化或者數(shù)組大小變化的時(shí)候都要修改。
但要特別注意
如果 A *a = new A[10];
就一定要用memset(a,0,10*sizeof(A));因?yàn)閍是指針,所以sizeof(a)為4。