gpt4 book ai didi

c++ - 错误 : conflicting return type specified, 与平时不同

转载 作者:搜寻专家 更新时间:2023-10-31 01:55:30 25 4
gpt4 key购买 nike

我是一名计算机科学专业的学生。我知道“指定的返回类型冲突”通常意味着您在函数声明之前使用它,但这个有点不同。由于严格的分配准则,我正在实现一个任务调度程序(我们自己的多线程程序),并且在一个名为 Task 的类中,在 Task.h 中我们有:

void Task::Start(){
int * returnval = new int;
*returnval = pthread_create(&thread_id,NULL,tfunc,this);
delete returnval;
}

然后在另一个文件 schedulable.h 中,我们有:

int Schedulable::Start(){ 
try{
Task::Start();
return 0;
}catch(int e) { return 1; }
}

当我编译它时,出现“返回类型冲突”错误:

In file included from scheduler.H:59, from task_test_step2.cpp:9: schedulable.H:162: error: conflicting return type specified for ‘virtual int Schedulable::Start()’ task.h:157: error: overriding ‘virtual void Task::Start()’

有什么办法可以阻止这种情况发生吗?

最佳答案

问题是 Schedulable::Start 覆盖了 Task::Start 并将返回类型从 void 更改为 int。您可能还想让 Task::Start 返回一个 int:

int Task::Start(){
// no need to use new here!
int returnval = pthread_create(&thread_id,NULL,tfunc,this);
return returnval;
}

关于c++ - 错误 : conflicting return type specified, 与平时不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8379525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com