使用const使参数可以转换
来源:互联网 发布:2015知乎年度吐槽精选 编辑:程序博客网 时间:2024/05/29 02:09
请看下面的代码
#include <iostream>
#include <string>
using namespace std;
void foo(string& str)
...{
cout << str << endl;
}
int main()
...{
foo("This can't compile successfully!");
return 0;
}
#include <string>
using namespace std;
void foo(string& str)
...{
cout << str << endl;
}
int main()
...{
foo("This can't compile successfully!");
return 0;
}
这将无法编译通过。因为在常量字符串参数与string之间存在转换,而foo的参数要求的是一个引用参数。事实上,我们发现,foo并不需要对参数str进行修改,因此使用const string&是一个更好的代码风格,如下:
void foo(const string& str)
...{
cout << str << endl;
}
int main()
...{
foo("This will compile successfully!");
return 0;
}
...{
cout << str << endl;
}
int main()
...{
foo("This will compile successfully!");
return 0;
}
此段代码可以顺利编译,foo可以接受一个临时的变量,达到了参数转换的目的。
- 使用const使参数可以转换
- error C2665: “operator new” : 5个重载中没有一个可以转换参数1(从“const char [71]”类型)
- 参数使用const的理由
- 函数参数中使用const
- Format(const wchar_t *,...)”: 不能将参数 1 从“const char [3]”转换为“const wchar_t *”.
- 指针参数传递时const指针使用
- C++ 使用const 引用传递参数
- C++ 使用const 引用传递参数
- scala 隐式转换 使File可以使用read方法
- 一个参数既可以是volatile又可以是const吗?
- 一个参数既可以是const还可以是volatile吗?解释为什么
- 不能将参数1从“const char []”转换为“LPCTSTR
- 不能将参数1从“const char []”转换为“LPCTSTR
- 不能将参数 1 从“CString”转换为“const char *”
- 不能将参数1从“CString”转换为“const char *”
- 不能将参数 1 从“CString”转换为“const char *”
- 不能将参数1从“const char []”转换为“LPCTSTR
- 不能将参数 1 从“CString”转换为“const char *”
- DataView数据视图实现数据过滤,排序(代码调试通过)
- DIV的拖拽--script
- 一个合格程序员该做的事情
- 开blog说明
- CSS+DIV园角边框
- 使用const使参数可以转换
- 白熊爱上冰雪女王
- 第一部分: Dijit 1 快速安装
- CheckBox与DataGrid混用&DataSet批量删除数据
- ARM微处理器寄存器装载和存储
- VS.NET打包自动安装数据库
- 文本域textarea输入字符长度限制
- 业界观察:为何软件界盛产思想家?
- CSDN论坛阅读器 : CSDN Reader