这是一个例子:

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。
那么,如何使类似的东西起作用?

最佳答案

您只能在类型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;
}

关于c++ - 您将如何嵌套结构?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53570213/

10-13 08:28