﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Релиб / Программирование / C++  / Перегрузка оператора индексирования / Latest Posts</title><generator>InstantForum.NET v4.1.4</generator><description>Релиб</description><link>http://www.relib.com/forums/</link><webMaster>robot@relib.com</webMaster><lastBuildDate>Fri, 21 Nov 2008 20:22:53 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: Перегрузка оператора индексирования</title><link>http://www.relib.com/forums/Topic913670-7-1.aspx</link><description>Сделал. Задача снята.</description><pubDate>Sat, 02 Jun 2007 16:25:47 GMT</pubDate><dc:creator>PLAstic</dc:creator></item><item><title>RE: Перегрузка оператора индексирования</title><link>http://www.relib.com/forums/Topic913670-7-1.aspx</link><description>[quote][b]genok (31.05.2007)[/b][hr]не знаю пока насчет ошибки 2288, но в строке &lt;BR&gt;EventData[0]-&amp;gt;strComputerName = "pipec";&lt;BR&gt;точно еще одна ошибка. для массива char применяется strcpy и подобное, а не простое присваивание...[/quote]&lt;BR&gt;Да я это тогда же поправил. Привык работать с AnsiString.&lt;BR&gt;[quote][b]genok (31.05.2007)[/b]и к ошибке 2288:&lt;BR&gt;может стоит просто вместо структуры в класс запихать указатель на AnsiString-строки?[/quote]Смысл в чём. Мне нужно обслуживать "очередь событий" - массив элементов типа структура. Т.е. сторонний софт может добавлять элементы в конец массива, а мне надо соотв-нно обрабатывать элементы с начала массива, удаляя их после обработки и сдвигая все последующие вперёд.&lt;P&gt;Т.е. нечто типа стека FIFO. Вот для обслуживания это стека я и попробовал написать класс. Может можно сделать как-то проще?</description><pubDate>Thu, 31 May 2007 23:41:24 GMT</pubDate><dc:creator>PLAstic</dc:creator></item><item><title>RE: Перегрузка оператора индексирования</title><link>http://www.relib.com/forums/Topic913670-7-1.aspx</link><description>не знаю пока насчет ошибки 2288, но в строке &lt;br&gt;EventData[0]-&gt;strComputerName = "pipec";&lt;br&gt;точно еще одна ошибка. для массива char применяется strcpy и подобное, а не простое присваивание...&lt;br&gt;&lt;br&gt;и к ошибке 2288:&lt;br&gt;может стоит просто вместо структуры в класс запихать указатель на AnsiString-строки?</description><pubDate>Thu, 31 May 2007 12:17:34 GMT</pubDate><dc:creator>genok</dc:creator></item><item><title>Перегрузка оператора индексирования</title><link>http://www.relib.com/forums/Topic913670-7-1.aspx</link><description>Что-то не выходит каменный цветок. Определение класса:&lt;P&gt;[code]struct TEventData {&lt;BR&gt; char strComputerName[128];&lt;BR&gt;};&lt;BR&gt;class TEventDataSet&lt;BR&gt;{&lt;BR&gt;private:&lt;BR&gt; int iCurrentRecordNo;  //текущая запись&lt;BR&gt; TEventData* Buffer[]; //буфер&lt;BR&gt;public:&lt;BR&gt; int iRecordCount;   //количество записей&lt;BR&gt; TEventData* CurrentRecord;  //структура новой записи для заполнения&lt;BR&gt; TEventData&amp;amp; __fastcall operator [](const int idx);  //пытаюсь перегрузить оператор индексирования&lt;BR&gt; void __fastcall AppendRecord();&lt;BR&gt;};[/code]&lt;/P&gt;&lt;P&gt;И вот реализация перегрузки:&lt;/P&gt;&lt;P&gt;[code]TEventData&amp;amp; __fastcall TEventDataSet::operator [](const int idx)&lt;BR&gt;{&lt;BR&gt; if ((idx &amp;gt;= 0) &amp;amp;&amp;amp; (idx &amp;lt;= iRecordCount))&lt;BR&gt; {&lt;BR&gt;  iCurrentRecordNo = idx;&lt;BR&gt;  CurrentRecord = Buffer[iCurrentRecordNo];&lt;BR&gt;  return *(TEventData*)CurrentRecord;&lt;BR&gt; }&lt;BR&gt; return (*(TEventData*)Buffer[0]);&lt;BR&gt;}[/code]&lt;/P&gt;&lt;P&gt;Подозреваю, что могу быть сильно далёк от правильного написания кода, ибо не занимался этим уже несколько лет. При вызове этой писанины путём&lt;/P&gt;&lt;P&gt;[code]TEventDataSet EventData;&lt;BR&gt;EventData.AppendRecord();&lt;BR&gt;EventData[0]-&amp;gt;strComputerName = "pipec";[/code]&lt;/P&gt;&lt;P&gt;Возникает ошибка&lt;/P&gt;&lt;P&gt;E2288 Pointer to structure required on left side of -&amp;gt; or -&amp;gt;*&lt;/P&gt;&lt;P&gt;В чём загвоздка?</description><pubDate>Sun, 27 May 2007 23:03:24 GMT</pubDate><dc:creator>PLAstic</dc:creator></item></channel></rss>