| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 372 人关注过本帖
标题:C++关于返回值的问题
取消只看楼主 加入收藏
lizjohn
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2010-10-28
结帖率:70.59%
收藏
已结贴  问题点数:20 回复次数:0 
C++关于返回值的问题
     为什么我的Elemtype& Array::operator [](int x)这个函数只能返回引用,如果我改成Elemtype Array::operator [](int x)就显示有错!error C2106: '=' : left operand must be l-value。这是为什么?以下是我代码的主体部分(动态数组类),
程序代码:
[color=#0000FF]#include "Array.h"


Array::Array()//默认构造[/color]
{
size=0;
ptr=0;
}
Array::Array(int s)//构造

{
ptr=new Elemtype[s];
size=s;

}
Array::Array(Array &p)
{
ptr=new Elemtype[p.size];
size=p.size;
for(int i=0;i<size;i++)
ptr[i]=p.ptr[i];

}
int Array::getlength()
{
return size;
}
Elemtype& Array::operator [](int x)//运算符重载
{
return ptr[x];
}
Array::moveall()
{
delete []ptr;
ptr=0;


}
Array::~Array()
{
moveall();

}
下面是main函数部分
#include<iostream>
using namespace std;
#include"Array.h"
void main()
{
    int i;
Array a(3);
a[0]=1;
a[1]=2;
a[2]=3;
for(i=0;i<a.getlength();i++)
cout<<a[i]<<endl;


}

2011-05-08 10:21
快速回复:C++关于返回值的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037877 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved