C++left operand must be l-value#include class CA{public:double *p;int n;public:CA(int n1){n=n1;p=new double[n];}~CA(){delete []p;}CA(CA &t){n=t.n;p=t.p;}double operator[](int i){return p[i];}};void main(){CA t(5);double sum=0,d;for(int i

来源:学生作业学帮网 编辑:学帮网 时间:2024/05/13 13:18:44

C++left operand must be l-value
#include
class CA
{
public:
double *p;
int n;
public:
CA(int n1)
{n=n1;p=new double[n];}
~CA()
{delete []p;}
CA(CA &t)
{n=t.n;p=t.p;}
double operator[](int i)
{return p[i];}
};
void main()
{
CA t(5);
double sum=0,d;
for(int i=0;i>d;
t[i]=d;
sum+=t[i];
}
CA s(t);
cout

operator[]返回的是一个临时变量
改:
double& operator[](int i)
{
return p[i];
}