私はコンピューターサイエンスの学生です。私は "指定された戻り値の型が競合する"ということは、通常は関数が宣言される前に関数を使用していることを意味しますが、これは少し異なります。厳格な割り当てのガイドラインに、私は、タスクスケジューラを実装しています(当社独自のマルチ糸通し)と1つのクラスに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'から継承されている場合、矛盾する戻り値の型を持つ2つの 'Start'がありますが、もちろんエラーです。その理由は、 'Schedulable'というオブジェクトを持ち、' Start'を呼び出すと、コンパイラは混乱します。 – Shahbaz
実際のエラーを掲載することはできますか? – FailedDev