error C2166: l-value specifies const object

ppzhoujun 2009-11-13 03:29:59
d:\vector\vector.cpp(125) : error C2166: l-value specifies const object
我在我的头文件的类中定义了
public:
friend std::ostream & operator<<(std::ostream & os, const Vector & v);
在实现这个函数的源文件中这样写
std::ostream & operator<<(std::ostream & os,const Vector & v)
{
if (v.mode = 'r')
{
os<<"(x,y)=("<<v.x<<","<<v.y<<")";
}
else if (v.mode == 'p')
{
os<<"(m,a)=("<<v.mag<<","<<v.ang*Rad_to_deg<<")";
}
else
{
os<<"Vector object mode if invalide";
}
return os;
}

怎么编译器报d:\vector\vector.cpp(125) : error C2166: l-value specifies const object
望大虾不吝指教
...全文
911 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xladykiller 2009-11-13
  • 打赏
  • 举报
回复
要用 ==
这是个常见的错误
xladykiller 2009-11-13
  • 打赏
  • 举报
回复
v.mode = 'r'这里错了
xladykiller 2009-11-13
  • 打赏
  • 举报
回复
error C2166: l-value specifies const object的错误
  说明在const类型的函数中改变了类的非静态数据成员.

64,637

社区成员

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

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