在C ++中分配元素的地址时出错

时间:2014-03-30 12:41:00

标签: c++

我有两个班级,Class Aclass B。我的代码写在下面。我收到的错误是我最后提到的。

class A
{    
    Private:
        B Labels
        ....
        ....    
};

A::method()
{
    Labels.add (label_mark);
    ....
    ....
}

A::save()
{
....
....
    for (int i = 0; i < Labels.size (); i++)
    {
        const B& Labels = Labels[i]; //GETTING ERROR HERE

        fprintf (file,"%d\n",
                i + 1,
                Labels.timestamp.toString ("%H:%M:%S").c_str (),

    }
}

我收到错误

error: no match for ‘operator[]’ in ‘Labels[i]’

1 个答案:

答案 0 :(得分:2)

您正在隐藏B的名称:

const B& Labels = Labels[i];

执行此操作时,RHS上的Labelsconst B&,且没有operator[]

您需要选择其他名称:

const B& foobar = Labels[i];