C++使用引用形参的优点:
2011-10-25 02:08
381 查看
C++使用引用形参的优点:
在向函数传递大对象时,需要使用引用形参。虽然赋值实参对于内置数据类型的对象或者规模较小的类类型来说没有什么问题,但是对于大部分的类类型或者大型数组,它的效率就比较低了。另外,某些类类型是无法复制的。使用引用形参,函数可以直接访问实参对象,而无须复制它。
示例:
bool isShorter(const string &str1,const string &str2)
{
return str1.size()<str2.size();
}
由于string对象可能非常的长,我们希望避免复制操作。
如果使用引用形参的唯一目的是避免复制形参,则应将形参定义为const引用。
使用引用形参应该注意的:
int incr(int &val)
{
return ++val;
}
void main(void)
{
short v1=1;
const int v2=10;
int v3=20;
incr(v1); //错误,v1不是int
incr(v2); //错误,v2是const
incr(v3); //正确
incr(10); //错误
}
所以,调用非const类型的引用形参,实参必须不是const类型的,而且实参的类型和形参的类型应当一致。
在向函数传递大对象时,需要使用引用形参。虽然赋值实参对于内置数据类型的对象或者规模较小的类类型来说没有什么问题,但是对于大部分的类类型或者大型数组,它的效率就比较低了。另外,某些类类型是无法复制的。使用引用形参,函数可以直接访问实参对象,而无须复制它。
示例:
bool isShorter(const string &str1,const string &str2)
{
return str1.size()<str2.size();
}
由于string对象可能非常的长,我们希望避免复制操作。
如果使用引用形参的唯一目的是避免复制形参,则应将形参定义为const引用。
使用引用形参应该注意的:
int incr(int &val)
{
return ++val;
}
void main(void)
{
short v1=1;
const int v2=10;
int v3=20;
incr(v1); //错误,v1不是int
incr(v2); //错误,v2是const
incr(v3); //正确
incr(10); //错误
}
所以,调用非const类型的引用形参,实参必须不是const类型的,而且实参的类型和形参的类型应当一致。
相关文章推荐
- 什么时候应使用指针形参?什么时候就使用引用形参?解释两者的优点和缺点。
- C++中使用引用作为函数参数的优点
- C++引用之引用的使用
- C++何时使用引用
- Effective Modern C++ 条款25 对右值引用使用std::move,对通用引用使用std::forward
- c++ 使用引用防止类的拷贝构造
- 使用C++模板的优点和缺点
- C++引用(3) - 使用引用或者指针传递参数
- C++中const用法(3)——引用形参问题
- c++使用thread类时编译出错,对‘pthread_create’未定义的引用
- 问题三十八:C++中bad alloc问题(2)——使用“引用”避免该问题
- C++ 引用 是否占内存和使用
- ICTCLAS2016 linux C++版本 使用教程 Eclipse下开发C/C++程序之头文件,库文件引用
- C++引用形参,函数返回多个值
- 使用 C++ 编写内核模式驱动程序的优点与缺点
- c++之复制构造函数为何形参是引用传递
- C++ 右值引用 使用笔记
- C/C++中extern的使用,引用另一个文件中的变量
- C/C++函数形参传实参时值传递、指针传递、引用传递的区别
- C/C++何时使用引用和指针