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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Visual C++ EnumChildWindows в проекте MFC http://www.cyberforum.ru/cpp-beginners/thread508202.html
Необходимо обратиться к каждому ChildWindows окна. Как получить список ChildWindows имея HWND окна в проектe MFC? При использовании EnumChildWindows нужно указать BOOL CALLBACK EnumChildProc(HWND <I>hwnd</I>,LPARAM <I>lParam</I>); Где и как правильно описать эту функцию в проекте MFC? Спасибо.
C++ Сортировка коллекции CMap Помогите, кто может !!! Сортировка в коллекции CMap for (int a=2; a<=mm.GetCount();a++) { mm.GetNextAssoc(pos,string,th); //получения значения и ключа for(int i=0;i<mm.GetCount()-1; i++) { mm.GetNextAssoc(pos,string,th1); mm.GetNextAssoc(pos1,string,th); //получения значения и ключа if(th>th1) {mm1.SetAt(th.Name, th2);mm.SetAt(th1.Name, th);mm.SetAt(th2.Name, th1);} } ... http://www.cyberforum.ru/cpp-beginners/thread508124.html
Visual C++ Перерисовка окна по нажатию кнопки
Как сделать так, чтобы окно полностью перерисовывалось по нажатию на кнопку? (прога под MFC)
Считать числа типа double из файла и записать их в массив C++
Проблема следущая: нужна программа которая считывает числа типа double из файла (в моем случае это индексы валютного курса) и записывает их в массив double A. т.е есть файлик примерно с таким содержанием: 31,7101 31,784
Visual C++ Множество проблем со строковыми типами http://www.cyberforum.ru/cpp-beginners/thread507785.html
Здраствуйте! Программирую на VC++2005 Возникло множество проблем со строковыми типами в связи с переходом с VC++2003 try { CStdioFile file( _T("c:\test.txt"), CFile::modeRead || CFile::typeText ); CString buf; file.ReadString( buf ); // здесь вызывается исключение и пишет "неизвесная ошибка". Почему?? AfxMessageBox( buf ); file.Close(); }
C++ Диалог запроса логина и пароля Уважаемые программисты, не подскажите как вызвать системный диалог запроса логина и пароля у пользователя через Win32 Api и в какой длл он живет. Пишу прогу на Vba, и торкнуло меня это сделать красиво, а не каждый раз формы самопальные мастерить. подробнее

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

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

28.05.2007, 03:03. Просмотров 3732. Ответов 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 ->*
В чём загвоздка?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru