Re[4]: Оператор [] и const методы
От: Nexie  
Дата: 05.04.07 06:44
Оценка:
EG>Comeau говорит (и правильно, на мой взгляд) об использовании неинициализированных переменных i и j (но это предупреждение) и о том, что operator[] для const SampleClass не определен (а это ошибка).

Это просто минимальный код вызывающий ту же ошибку.
На самом деле он выглядит так:

void TFloatGrid::Resample(const TFloatVector& Nodes, const TFloatVector& Values)
{
 TFloat SL,SR,DL,DR;
 //
 m_Values.Fill(0.0);
 TIndex j = 0;
 for (TIndex i = 0; i < Nodes.GetSize()-1; i++)
 {
  SL = Nodes[i];
  SR = Nodes[i+1];
  do
  {
   if (j>=(m_Nodes.GetSize()-1)) return;
   DL = m_Nodes[j];
   DR = m_Nodes[j+1];
   if (SR<=DL) break; // [A---B] [C---D]
   if (SL>=DR) { j++; continue; } // [C---D] [A---B]
   if ((SL==DL)&&(SR==DR)) { m_Values[j++] = Values[i]); break; } // [AB---CD]
   if (SL<DL)
   {
    if (SR<DR)
    { // [A--[C-B]--D]
     m_Values[j] = m_Values[j] + Values[i]*(SR-DL)/(DR-DL);
     break;
    }
    else
    { // [A-[C---D]-B]
     m_Values[j++] = m_Values[j]+Values[i];
   }}
   else
   {
    if (SR<DR)
    { // [C-[A---B]-D]
     m_Values[j] = m_Values[j]+Values[i]*(SR-SL)/(DR-DL);
     break;
    }
    else
    { // [C--[A-D]--B]
     m_Values[j++] = m_Values[j]+Values[i]*(DR-SL)/(DR-DL);
  }}}
  while (TRUE);
 }
}


А вот const оператор это видимо то самое и есть, чего не хватало.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.