我的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)
}
}
答案 0 :(得分:0)
更改sortedMerge
以按值获取其参数,而不是参考:
sortedMerge(ListOfParts * l2, ListOfParts * result);
然后,您将能够传递不可修改的指针,例如this
。