读书人

当不应该养成用引用的习惯

发布时间: 2013-06-25 23:45:42 作者: rapoo

应不应该养成用引用的习惯?


CTime tmClient,tmServer,tmRequired;//我以前是这样子

CTime tmClient,&tmServer=tmClient,&tmRequired=tmClient;//写起来颇为吃力
//下面用起来都就一样省事了

我觉得发明别名就是专门用来节约空间的(且不提其它高级用法),尤其是成员变量很多的类
各位都用哪种?方便交流
[解决办法]
我一般除了有些名字特别长的时候才这样用。。
[解决办法]
个人意见:“不应该!”
(不解释)
[解决办法]
能用引用的一搬都用,除非有特殊理由要求不用。
[解决办法]
与引用相比,我更喜欢用指针,个人看法
[解决办法]
// 某天你看到这样的代码时,会不会觉得len1, len2 是不会变化的呢?
encodebuf(buf1, len1, buf2, len2);
// 而看到下面的,是不是觉得 len2 会被修改成加密后buf2所存储数据的大小?
encodebufpoi(buf1, len1, buf2, &len2);

// 而在很深的目录里你可以看到定义
// 这样看一个函数就要翻一次函数定义函数实现,会不会觉得很累??
unsigned char * encodebuf(unsigned char* ucbuf,
int ibuflen,
unsigned char* ucencodebuf,
int &ioutbuf)
{
if (ioutbuf < ibuflen*2)
{
return 0;
}
for (int i =0; i<ibuflen; i += 8)
{
ioutbuf += XorAddDes(ucbuf[i], ucencodebuf[i*2], key);
}
return ucencodebuf;
}

unsigned char * encodebufpoi(unsigned char* ucbuf,
int ibuflen,
unsigned char* ucencodebuf,
int* ioutbuf)
{
if (ioutbuf < ibuflen*2)
{
return 0;
}
for (int i =0; i<ibuflen; i += 8)
{
ioutbuf += XorAddDes(ucbuf[i], ucencodebuf[i*2], key);
}
return ucencodebuf;
}

[解决办法]
encodebufpoi函数漏了一个星号...
*ioutbuf += XorAddDes(ucbuf[i], ucencodebuf[i*2], key);

读书人网 >C++

热点推荐