我是計算機科學專業的學生。我知道「指定的返回類型衝突」通常意味着你在聲明之前使用了一個函數,但這個函數有點不同。由於嚴格的分配指導方針,我執行任務調度(我們自己的多穿線)和被稱爲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()’
任何想法如何,我能得到這個發生停止ING?
在哪一行是實際發生的錯誤?你能粘貼真正的錯誤信息,而不是它的簡介? – Gian
'Task'和'Schedulable'之間有什麼關係?如果'Task'繼承自'Schedulable',那麼你有兩個'Start'具有衝突的返回類型,這當然是一個錯誤。之所以這樣,是因爲如果你有一個'Schedulable'的對象並且調用它的'Start',編譯器會感到困惑。 – Shahbaz
你能發佈實際的錯誤嗎? – FailedDev