我在类里面定义了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/