C++中结构中的结构

2 c++ struct

如何访问在另一个结构中定义的结构的成员?
假设我们有一个结构定义为:

struct FR {
    size_t n;
    struct FR_1{
        unsigned char r;
        unsigned char g;
        unsigned char b;
    };
};
Run Code Online (Sandbox Code Playgroud)

在2015年视觉工作室下,写作:

    struct FR x;
    x.FR_1.
Run Code Online (Sandbox Code Playgroud)

不显示FR_1成员的选项.另一方面,写作:

struct FR_1 y; 说: Error,incomplete type is not allowed.

你如何处理这种结构?

Ale*_*exD 9

该示例声明了类型struct FR_1,而不是该类型的成员.相反,尝试:

struct FR {
    size_t n;
    struct FR_1 {
        unsigned char r;
        unsigned char g;
        unsigned char b;
    } fr1;
};

FR x;
x.fr1.r = 0;
Run Code Online (Sandbox Code Playgroud)


tei*_*vaz 5

struct FR {
    size_t n; // < Declaration of member variable
    struct FR_1{ // < Declaration of nested type
        unsigned char r;
        unsigned char g;
        unsigned char b;
    };
    FR_1 fr1; // < Declaration of member variable
};
Run Code Online (Sandbox Code Playgroud)

您需要FR_1FR结构中声明该类型的变量,而不仅仅是类型本身。

FR fr;
fr.fr1.r = 0;
Run Code Online (Sandbox Code Playgroud)