C++中的数据类型转换

Redredhot 2009-12-27 09:30:22

int i = 2;
string na = "abc" + i; //这样的转换无效,为什么,求解

各位有没有更详细的更全的C++的类型转换的资料
Email: conquest_lee@126.com
...全文
178 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
闽悦蚊子 2009-12-27
  • 打赏
  • 举报
回复
资料已发至你邮箱,注意查收!
至于问题,5楼已经说得很详细了,确实如此!
"abc" 的类型是 const char[4],而i是整型,没有重载+号支持这样的运算,所以不能进行转换,
yotta 2009-12-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 shuilongyin_00 的回复:]
蜡烛 + 蜡 = ?
蜡 + 蜡烛 = ?
不能做的!

蜡烛 + 蜡烛 = 蜡烛
蜡 + 蜡 + 蜡 = 蜡
能做!

蜡烛 + 蜡烛(蜡) = 蜡烛
蜡 + 蜡(蜡烛) = 蜡

类型转换,Google就能找到很多了!
[/Quote]

这个很形象
Vegertar 2009-12-27
  • 打赏
  • 举报
回复
呃,更正一下二楼的回复。

标准允许 "abcdef"[i] 形式的运算(汗!),所以 "abcdefg" + (int) 从逻辑上是可以的,只要你保证不会越界。

g++ 4.4.1 与 VC9 均通过

楼主的代码没有问题。

不过,本人还是要说: 自动转换是引起混乱的根源
z569362161 2009-12-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 huang_gen 的回复:]
int i = 2;
string na = "abc" + i; //这样的转换无效,为什么,求解
这样处理当然无效,因为string是位于std命名空间中的一个类,而"abc" 得类型是 const char[4],当然不能进行转换,
int i = 2;
string temp="abc";
string na = temp+ i;这样是可以的,因为string类提供了operator+的重载。
希望我的回帖对你有帮助,记得给分呀!!!
[/Quote]

很详细了。
buptzwp 2009-12-27
  • 打赏
  • 举报
回复
""字符串常量不能进行加减。。。
huang_gen 2009-12-27
  • 打赏
  • 举报
回复
int i = 2;
string na = "abc" + i; //这样的转换无效,为什么,求解

这样处理当然无效,因为string是位于std命名空间中的一个类,而"abc" 得类型是 const char[4],当然不能进行转换,
int i = 2;
string temp="abc";
string na = temp+ i;这样是可以的,因为string类提供了operator+的重载。
希望我的回帖对你有帮助,记得给分呀!!!
Redredhot 2009-12-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 vegertar 的回复:]
如果允许这种转换,就将打乱语言内置的字符指针的偏移运算。
[/Quote]
那我该如何转换呢???
shuilongyin_00 2009-12-27
  • 打赏
  • 举报
回复
蜡烛 + 蜡 = ?
蜡 + 蜡烛 = ?
不能做的!

蜡烛 + 蜡烛 = 蜡烛
蜡 + 蜡 + 蜡 = 蜡
能做!

蜡烛 + 蜡烛(蜡) = 蜡烛
蜡 + 蜡(蜡烛) = 蜡

类型转换,Google就能找到很多了!
Vegertar 2009-12-27
  • 打赏
  • 举报
回复
如果允许这种转换,就将打乱语言内置的字符指针的偏移运算。
Vegertar 2009-12-27
  • 打赏
  • 举报
回复
自动转换是引起混乱的根源
lowrmcf 2009-12-27
  • 打赏
  • 举报
回复
xm_xlf 2009-12-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 licgo 的回复:]
C/C++ codeint i=2;string na="abc"+ i;//这样的转换无效,为什么,求解
各位有没有更详细的更全的C++的类型转换的资料
Email:  conquest_lee@126.com
[/Quote]
int i=2;
CString temp;
temp.Format(_T("%d"),i);
CString na="abc"+temp;
这样是行的!
希望对你有用!
Redredhot 2009-12-27
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 laiwenyu913 的回复:]
资料已发至你邮箱,注意查收!
至于问题,5楼已经说得很详细了,确实如此!
"abc" 的类型是 const char[4],而i是整型,没有重载+号支持这样的运算,所以不能进行转换,
[/Quote]
那我要实现字符串和整型的拼接,该如何做呢??

64,641

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧