今天偶然说到一个函数的接口,是这样子的
void GetInt(int* &p);
函数的功能先不说,说说接口问题.
老师说.从调用方的角度讲,这个接口不清晰.先看看调用方怎么调用这个函数:
...
int* p;
GetInt(p);
...
如上所示,调用方其实从代码上看,不是很确定p会被改变,
而这个函数是引用传递这个参数的,p随时都可能被改变.
一种更好的方法如下所示:
void GetInt(int** p);
这样写的话,调用方就会这样调用了.
...
int* p;
GetInt(&p);
...
这样一看到一个"&"就知道是传地址过去,也就很明显地表明p很可能会改变. 这样就增强了代码的可读性。