调用函数将结果存储在“this”中

时间:2012-01-17 14:28:38

标签: c++

我的SortedMerge函数声明为:

sortedMerge(ListOfParts *& l2, ListOfParts *& result);

在同一个类的下面函数中,我希望使用对象tmp1调用此SortedMerge()函数,并在调用mergeSort函数的对象中获取结果;即,this。 基本上,main()中的对象l1调用mergeSort(),从那里我得到2个列表tmp1,tmp2,现在我希望调用SortedMErge将RESULT存储在l1中;

真的卡住了。我认为使用“this”就足够了,但是我觉得它与函数参数有一些冲突,没有采用ant CONST,“this”会使它成为CONST。

那么可能是另一种解决方法呢?

Class ListOfParts{

struct CarPart{

int data;
CarPart *next;

}


CarPart *Head;

public:


    sortedMerge(ListOfParts *& l2, ListOfParts *& result);

void mergeSort(){

    ListOfParts *tmp1;
    ListOfParts *tmp2;
    if(this->Head == NULL || this->Head->Next == NULL){

        return;

    }

    this->frontBackSplit(tmp1, tmp2);

    tmp1->mergeSort();
    tmp2->mergeSort();


    tmp1->sortedMerge(tmp2, this)   
}

}

1 个答案:

答案 0 :(得分:0)

更改sortedMerge以按值获取其参数,而不是参考:

sortedMerge(ListOfParts * l2, ListOfParts * result);

然后,您将能够传递不可修改的指针,例如this