首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

error C2228: “.elem”的左方必须有类/结构/联合

2012-09-14 
error C2228: “.elem”的左边必须有类/结构/联合class Matrix{int* mint szl,szrpublic:Matrix(int,int)

error C2228: “.elem”的左边必须有类/结构/联合
class Matrix
{
int* m;
int szl,szr;
public:
Matrix(int,int);
Matrix(const Matrix& n);
int& elem(int,int);
~Matrix();
};
Matrix::Matrix(int i,int j)
{  
szl=i;szr=j;
m=new int[i*j];
}
Matrix::Matrix(const Matrix& n)
{
szl=n.szl;
szr=n.szr;
m=new int[szl*szr];
for(int i=0;i<szl;i++)
for(int j=0;j<szr;j++)
m.elem(i,j)=n.elem(i,j);
}
int& Matrix::elem(int i,int j)
{
if(i<0||szl<=i||j<0||szr<=j)
{
cerr<<"Matrix index out of range.\n";
exit(1);
}
return m[i*szr+j];
}
d:\users\administrator\documents\visual studio 2010\projects\hw6_2\hw6_2\hw6_2.cpp(58): error C2228: “.elem”的左边必须有类/结构/联合
1> 类型是“int *”
1>d:\users\administrator\documents\visual studio 2010\projects\hw6_2\hw6_2\hw6_2.cpp(58): error C2662: “Matrix::elem”: 不能将“this”指针从“const Matrix”转换为“Matrix &”
1> 转换丢失限定符
请大家看看是怎么回事?

[解决办法]
m是个指针,要用 ->
[解决办法]
m.elem(i,j)=n.elem(i,j);
改成
elem(i,j)=n.elem(i,j);

热点排行