注册 登录
编程论坛 C++教室

在一个类中,定义了一个类名加&号返回值类型的函数,参数为两个int数据,求教该函数的返回值该怎么写

ihaokun 发布于 2017-03-29 23:15, 2725 次点击
这是一道大题目,代码很多,就发要写的那部分。

main函数有关部分:
#include "Sequence.h "
#include "readandwritearray.h"
int main()
{
   Sequence *list=new Sequence(20);
   int *result =Read();
   list=&list->InsertData(result[1],result[0]);

类中有关部分
class Sequence
{
public:
    Sequence(void);
    Sequence(int max);
    ~Sequence(void);
    Sequence& InsertData(int index,const int&element);//顺序表的插入
    void Show();//顺序表的遍历


    int*  datalist; //数组
    int     maxLength; //顺序表的最大容量
    int     length; //顺序表的当前容量
};

//构造方法实现
Sequence::Sequence(int max)
{
    this->maxLength = max;
    this->length = 10;
    static int a[10]={11,3,4,21,5,6,7,8,10,14}; //静态变量,不会变释放
    this->datalist=a;
}

//析构方法实现
Sequence::~Sequence(void)
{
    delete [] datalist;
}

最后是要写的部分:

Sequence& Sequence::InsertData(int index,const int&element){

    //TODO:根据位置下标插入数据
      if(this->length >= this->maxLength||element>length||element<0)
    {
        return;
    }
      for(int i=this->length-1;i>=0;i--)
    {
        if(i!=element)
        {
            datalist[i+1]=datalist[i];
        }else
        {
            datalist[i+1]=datalist[i];
              datalist[i]=index;
              break;
        }
    }
    this->length++;
}


4 回复
#2
ihaokun2017-03-29 23:16
求教Sequence& Sequence::InsertData(int index,const int&element)
函数的返回值该怎么写
#3
weidelong2017-03-30 15:10
我的想法是不用返回值,因为本身就是个对datalist的操作,返回void
#4
ihaokun2017-03-30 15:35
需要返回值的,一开始我没写返回值,在vs上运行了一下,报错提示我写返回值。关键Sequence&的返回类型该怎么写呢?而且,main函数中调用了该函数list=&list->InsertData(result[1],result[0]);
#5
weidelong2017-04-01 10:11
回复 4楼 ihaokun
我的意思是定义函数类型就用void
1