关于运算符重载!!

start_building 2007-01-24 02:42:31
请教:自定义string类。
头文件中, const String & operator = (const String &);
去掉(const String &)中的const。(对应中的cpp中也去掉)。
那么在使用的时候,执行s = temp;其中,s是string 型,而temp是char 数组。
问,为何必须加const才能编译过去。其实我的问题就是关于自定义类型的强制转换。谢谢!!
...全文
78 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
DonaldKnuth 2007-01-24
  • 打赏
  • 举报
回复
要注意, 从char 类型数组或指针到 String 引用参数
的转换必然会产生临时对象, 而c++不允许非常量引用产生临时对象,所以必须
用const String &
taodm 2007-01-24
  • 打赏
  • 举报
回复
C++规定:非const引用不可以加在临时变量上。所以,必须加const。

64,654

社区成员

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

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