我在类里面定义了typedef std::vector<ColorInfo*> ColorInfoVector;

struct ColorInfo
{
    ColorInfo() : m_displayVector() {}


    // data members
    DisplayAttrVector m_displayVector;
};

我正在输入一种方法
void Display (ColorInfoVector                     *colorInfoVector)

在方法中,当我尝试访问成员变量og时,如下所示
DisplayAttrVector dispAttrs = (*(colorInfoVector[i]))->m_displayVector;

出错
error C2100: illegal indirection
error C2039: 'm_displayVector': is not a member of 'std::vector<ColorInfo *>'

最佳答案

排队

DisplayAttrVector dispAttrs = (*((*colorInfoVector)[i]))->m_displayVector;
(*colorInfoVector)[i]给您一个指针。要使用指针访问结构的成员,您需要编写
((*colorInfoVector)[i])->m_displayVector

要么
(*((*colorInfoVector)[i]))).m_displayVector

两者都做同样的事情。

关于c++ - 如何访问结构的成员,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50391522/

10-11 16:22