0

タイプ CvBox2D の構造体を返す関数を呼び出していますが、関数のエラーをチェックし、エラーがある場合は NULL を返したいと考えています。

CvBox2D function()
{
    ...

    if(ERROR)
        return NULL;

    ...
}

エラーが発生しました:「int」から「CvBox2D」に変換できません

4

3 に答える 3

2

関数の戻り値の型はCvBox2Dであるため、(NULL) ポインターをそれに変換することはできません。

関数内のチェックが失敗した場合に本当に「何も返さない」必要がある場合は、戻り値の型を へのポインタに変更できCvBox2Dます。

CvBox2D* function()
{
    ...
}

返されるオブジェクトが関数内で作成される方法も変更する必要があります。

通常、C++ で生のポインターを使用することはお勧めできません。本当にポインターを使用する必要があると思われる場合は、std::shared_ptr (C++11 で使用可能) を参照してください

于 2013-06-27T13:34:16.620 に答える