Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Перегрузка оператора индексирования - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сортировка коллекции CMap http://www.cyberforum.ru/cpp-beginners/thread508124.html
Помогите, кто может !!! Сортировка в коллекции CMap for (int a=2; a<=mm.GetCount();a++) { mm.GetNextAssoc(pos,string,th); //получения значения и ключа for(int i=0;i<mm.GetCount()-1; i++) ...
C++ Считать числа типа double из файла и записать их в массив Проблема следущая: нужна программа которая считывает числа типа double из файла (в моем случае это индексы валютного курса) и записывает их в массив double A. т.е есть файлик примерно с таким... http://www.cyberforum.ru/cpp-beginners/thread507831.html
Диалог запроса логина и пароля C++
Уважаемые программисты, не подскажите как вызвать системный диалог запроса логина и пароля у пользователя через Win32 Api и в какой длл он живет. Пишу прогу на Vba, и торкнуло меня это сделать...
vector , Поиск в списке по указателю, корректно ли это? C++
Доброго времени суток! Есть вектор. Вектор хранит указатели на объекты. У объектов есть поле . Это поле используется для сравнения объектов. В некоторый момент, после обработки очередного объекта ...
C++ FindNextFileChange & FindFirstFileChange http://www.cyberforum.ru/cpp-beginners/thread507612.html
Собственно сабж
C++ Синтаксический анализатор. Рекурсия Пожалуста, помогите кто чем может... знаю, что это не так сложно, но не представляю, как реализовывать. необходимо сделать с помощью рекурсии... Построить синтаксический анализатор понятия ... подробнее

Показать сообщение отдельно
PLAstic
Сообщений: n/a

Перегрузка оператора индексирования - C++

28.05.2007, 03:03. Просмотров 3757. Ответов 3
Метки (Все метки)

Что-то не выходит каменный цветок. Определение класса:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
struct TEventData {
 char strComputerName[128];
};
class TEventDataSet
{
private:
 int iCurrentRecordNo;  //текущая запись
 TEventData* Buffer[]; //буфер
public:
 int iRecordCount;   //количество записей
 TEventData* CurrentRecord;  //структура новой записи для заполнения
 TEventData& __fastcall operator [](const int idx);  //пытаюсь перегрузить оператор индексирования
 void __fastcall AppendRecord();
};
И вот реализация перегрузки:
C++
1
2
3
4
5
6
7
8
9
10
TEventData& __fastcall TEventDataSet::operator [](const int idx)
{
 if ((idx >= 0) && (idx <= iRecordCount))
 {
  iCurrentRecordNo = idx;
  CurrentRecord = Buffer[iCurrentRecordNo];
  return *(TEventData*)CurrentRecord;
 }
 return (*(TEventData*)Buffer[0]);
}
Подозреваю, что могу быть сильно далёк от правильного написания кода, ибо не занимался этим уже несколько лет. При вызове этой писанины путём
C++
1
2
3
TEventDataSet EventData;
EventData.AppendRecord();
EventData[0]->strComputerName = "pipec";
Возникает ошибка
E2288 Pointer to structure required on left side of -> or ->*
В чём загвоздка?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru