错误 C2106:'=':左操作数必须是左值 c++
Posted
技术标签:
【中文标题】错误 C2106:\'=\':左操作数必须是左值 c++【英文标题】:error C2106: '=' : left operand must be l-value c++错误 C2106:'=':左操作数必须是左值 c++ 【发布时间】:2013-11-11 06:09:25 【问题描述】:我收到C2106: '=' : left operand must be l-value
错误
*shp[count]).area()=max;
我不确定这意味着什么。形状类是所有形状的基类,我试图将它们全部放在形状类型的数组中,并找出哪个面积最大
int largestArea()
float max =-99999;
int index = 0;
shape *shp[6];
shp[0 ]= new trapezoid (4,6,3);
shp[1 ]= new triangle (4,2);
shp[2 ]= new parallelogram (3,8);
shp[3 ]= new trapezoid (2,6,3);
shp[4 ]= new triangle (5,2);
shp[5 ]= new parallelogram (2,7);
for(int count=0;count<6;count++)
if((*shp[count]).area()>=max)
(*shp[count]).area()=max;
index = count;
return index;
【问题讨论】:
area()
返回什么?
该错误表明您正在尝试分配给不可分配的东西。
error C2106: '=' : left operand must be l-value的可能重复
那么,您对(*shp[count]).area()=max
分配的意图是什么?你想通过这个做什么?
@Adam area() 在浮点数中返回相应区域的形状
【参考方案1】:
您的意思是分配max
。试试这个:
max = (*shp[count]).area();
【讨论】:
哈哈哇我是个白痴这是我第二次这样做我认为这可能是问题.....非常感谢这是问题【参考方案2】:我知道我有点跑题了。
你为什么不写这个?
size_t index = 0;
float max = (*shp[0]).area();
for(int count=1;count<6;count++)
if((*shp[count]).area()>=max)
max = (*shp[count]).area();
index = count;
阅读内容:
float max =-99999;
不愉快。
【讨论】:
感谢提示,下次会考虑以上是关于错误 C2106:'=':左操作数必须是左值 c++的主要内容,如果未能解决你的问题,请参考以下文章