这是一个例子:
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/