社区
工具平台和程序库
帖子详情
从string到string &
startlive
2008-03-04 10:57:53
定义一个函数f( string & )
然后调用f( string( "AAAAAAA" ) )
在vc中是对的,可是在dev c++中却错啦,为什么呀。
...全文
174
11
打赏
收藏
从string到string &
定义一个函数f( string & ) 然后调用f( string( "AAAAAAA" ) ) 在vc中是对的,可是在dev c++中却错啦,为什么呀。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
NKLoveRene
2008-03-06
打赏
举报
回复
是const的
sheenl
2008-03-06
打赏
举报
回复
因为vc不支持标准c++
abupie
2008-03-06
打赏
举报
回复
[Quote=引用 2 楼 jixingzhong 的回复:]
f( const string & )
[/Quote]
正解
xalangying
2008-03-06
打赏
举报
回复
不应该把临时变量string( "AAAAAAA" )传递给引用参数,改为f( const string & ) 就行了
p0303230
2008-03-06
打赏
举报
回复
[Quote=引用 2 楼 jixingzhong 的回复:]
f( const string & )
[/Quote]
“AAAAAAA”是常量,所以要const
jixingzhong
2008-03-06
打赏
举报
回复
f( const string & )
startlive
2008-03-06
打赏
举报
回复
哦,原来如此。谢谢大家拉。
dubiousway
2008-03-06
打赏
举报
回复
post your program
abupie
2008-03-06
打赏
举报
回复
除了刚刚说的const修饰符修饰函数的传递参数的作用和用法,
这里还涉及另一个问题: 临时变量到底是不是常量?
对于f( string( "AAAAAAA" ) ) , 编译器必须建立临时对象string("AAAA"), 临时对象是需要存储空间而且必须被构造和删除(和普通变量的区别是我们看不到这些, 是编译器负责决定它们的去留以及它们存在的细节)。
对于C++标准草案而言:临时对象自动地成为常量。
结合前面说的const修饰符修饰函数的传递参数, 所以C++标准中要求临时变量增加const修饰.
abupie
2008-03-06
打赏
举报
回复
[Quote=引用 8 楼 startlive 的回复:]
要加const,是不是说明零时变量是不可更改的?
还是这个const有其它的意义?
[/Quote]
const修饰符修饰函数的传递参数,格式如下:
void Fun(const int Var);
告诉编译器Var在函数体中的无法改变,从而防止了使用者的一些无意的或错误的修改。
startlive
2008-03-06
打赏
举报
回复
要加const,是不是说明零时变量是不可更改的?
还是这个const有其它的意义?
java六大必须理解的问题 文档
- **不可变性的意义**:`
String
`类是不可变的,这意味着一旦创建了一个`
String
`对象,其内容就不能改变。 - **不可变性的好处**: - 提高效率,因为多个变量可以共享同一个`
String
`对象。 - 增加安全性,特别是当...
C/C++程序设计员应聘常见面试试题深入剖析
如果面试者指出 strcpy(
string
, str1)调用使得从 str1 内存起复制到
string
内存起所复制的字节数具有不确定性可以给 7 分,在此基础上指出库函数 strcpy 工作方式的给 10 分; * 对试题 3,if(strlen(str1) )应改为...
java
string
转 map,Java 8:如何将
String
转换为Map<
String
,
String
>?
I have a Map:Map utilMap = new HashMap();utilMap.put("1","1");utilMap.put("2","2");utilMap.put("3","3");...I converted it to a
String
:
String
utilMap
String
= utilMap.entrySet().stream...
Java 面试题之反射的应用(如何在List<
String
> list = new ArrayList<
String
>();中放入Integer类型的数据)
面试题中遇到的问题,相信各位小伙伴,在面试中遇到...
String
> list = new ArrayList<
String
>();中放入Integer类型的数据,之前没有遇到过这种情况,回来找了一下度娘才明白,应用到了反射机...
C#实战小技巧(九):List<
string
>和
string
[]的相互转换
List是
string
类型列表,
string
[]是
string
类型数组,二者可以互相转换。 ...
string
> strList = new List<
string
>(strArray); 2.List转
string
[] List<
string
>..
工具平台和程序库
24,856
社区成员
27,330
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章