我收到了C2106: '=' : left operand must be l-value
错误
*shp[count]).area()=max;
而我不确定这意味着什么。 shape类是所有形状的基类,我试图将它们全部放在一个类型为shape的数组中,并找到哪个具有最大的区域
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;
答案 0 :(得分:4)
您打算分配max
。试试这个:
max = (*shp[count]).area();
答案 1 :(得分: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;
令人不快。