Как бы вы занялись вложенными структурами? - PullRequest
0 голосов
/ 01 декабря 2018

Вот пример:

struct colorRGB {

    float r, g, b;

    colorHSV toHSV()
    {
        colorHSV hsv;
        // some code..
        return hsv;
    }
};

struct colorHSV {

    float h, s, v;

    colorRGB toRGB()
    {
        colorRGB rgb;
        // some code..
        return rgb;
    }
};

colorRGB не будет работать, так как он еще не знает о colorHSV.Так как я могу заставить что-то подобное работать?

1 Ответ

0 голосов
/ 01 декабря 2018

Вы можете заранее объявить struct colorHSV; и предоставить определение функции-члена colorRGB::toHSV() только после завершения типа colorHSV, то есть известного компилятору.

// Forward-declare return type of toHsv() member function:
struct colorHSV;

struct colorRGB {
    float r, g, b;
    colorHSV toHSV();
};

struct colorHSV { /* Same as in your snippet. */ };

// Now that colorHSV is defined, we can implement the function using it:
colorHSV colorRGB::toHSV()
{
   colorHSV hsv;
   // some code..
   return hsv;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...