最近在写一个程序发现了一个比较奇怪的事情,我写了两个函数,其中的形参使用的是引用的形式,引用形参只是对原来变量起一个别名,那么这种情况下将会改变原来的值,这也是解决值传递的一种方法,但如果连续使用这样的两个函数,而在两次调用中,函数的形参都不相同,那么就不能达到改变原来值得目的了。具体如下:
这是函数的定义:
void convert(CString & str) ;
在程序中我这样调用:
convert(m_name);
convert(m_pass);
这样就没有达到改变其值的目的。
改成:
convert(m_name);
//其他的操作
convert(m_pass);
//其他的操作
这样就可以了.