Я студент информатики. Я знаю, что «указанный конфликтующий тип возврата» обычно означает, что вы используете функцию до ее объявления, но эта функция немного отличается. Из-за строгих правил назначения я реализую планировщик задач (наш собственный многопоточный) и в одном классе под названием 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()’
Есть идеи, как я могу заставить это перестать происходить?