如何访问结构的成员

How to access a member of a structure

本文关键字:结构 成员 访问 何访问      更新时间:2023-10-16

>我在类中定义了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 *>'

in line

DisplayAttrVector dispAttrs = (*((*colorInfoVector)[i]))->m_displayVector;

(*colorInfoVector)[i]给你一个指示。要使用指针访问结构的成员,您需要编写

((*colorInfoVector)[i])->m_displayVector

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

两者都做同样的事情。

应该像这样工作:

(*colorInfoVector)[i]->m_displayVector;