我正在尝试实现以下子例程。
string& sortAndMerge(string &u, int start, int end){
if(end>=0){
int mid=(start+end)/2;
if(start<end){
sortAndMerge(u,start,mid);
sortAndMerge(u,mid+1,end);
return merge(u,start,mid,end);
}
}
return;
}
该函数称为 sortAndMerge(s,0,s.length()-1),这里 s 是一个字符串。由于第三个参数最终可能为负数,因此我需要子例程来忽略这些情况。
我收到以下错误:-
return-statement with no value, in function returning ‘std::string& {aka std::basic_string<char>&}’ [-fpermissive].
我有两个问题。
有没有一种方法可以从具有除 void 之外的返回类型的函数返回任何内容。
什么时候可以使用没有任何内容或 NULL 的 return 关键字。
原文由 user3578017 发布,翻译遵循 CC BY-SA 4.0 许可协议
不,如果您希望您的程序正常工作,则不会。
您可以只在返回类型为
void
的函数中使用return
关键字。您可以在具有指针(非引用)类型作为其返回类型的任何函数中使用return
关键字和NULL
。根据
NULL
的定义方式,我想你也可以从int
作为返回类型的函数返回NULL
,但只返回 0 会更有意义.