Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Emuneration для индексов массива в Delphi: перевод на С++


monkeyboy ©   (2007-08-01 13:31:00) 

В Delphi для задания массива используется тип, и можно использовать enum.
type
 TFileTimeKind = (ftkLastModidied, ftkAccessed, ftkCreated);
...
 FFileTimes: array[TFiletipeKind] of TFileTime;


Пытаюсь это  выразить в С++ :

typedef enum
{
 LastModidied,
 Accessed,
 Created
}
FileTimeKind;
...
 FILETIME fileTimes_[3];


Можно ли как-то сделать, чтобы константа 3 вычислялась из диапазона enum ?


monkeyboy   (2007-08-01 14:12:00) [1]


> palva ©

Да, наверное именно так надо, спасибо.


monkeyboy   (2007-08-01 14:08:00) [2]


> Игорь Шевченко ©  

Понятно, спасибо.
То есть, того что хотелось бы, нет.
В моей ситуации тогда лучше сделать три поля.


palva   (2007-08-01 13:59:00) [3]

Может быть, так?

#include <stdio.h>

typedef enum
{
LastModidied,
Accessed,
Created,
Max_Enum
}

FileTimeKind;

int fileTimes_[Max_Enum];
void main() {
 fileTimes_[Created] = 777;
 printf("%d\n", fileTimes_[Created]);
}


Игорь Шевченко   (2007-08-01 13:54:00) [4]

Видел только такое решение:

typedef enum _SYSTEM_POWER_STATE {
   PowerSystemUnspecified = 0,
   PowerSystemWorking     = 1,
   PowerSystemSleeping1   = 2,
   PowerSystemSleeping2   = 3,
   PowerSystemSleeping3   = 4,
   PowerSystemHibernate   = 5,
   PowerSystemShutdown    = 6,
   PowerSystemMaximum     = 7
} SYSTEM_POWER_STATE, *PSYSTEM_POWER_STATE;

#define POWER_SYSTEM_MAXIMUM 7

typedef struct CM_Power_Data_s {
   DWORD               PD_Size;
   DEVICE_POWER_STATE  PD_MostRecentPowerState;
   DWORD               PD_Capabilities;
   DWORD               PD_D1Latency;
   DWORD               PD_D2Latency;
   DWORD               PD_D3Latency;
   DEVICE_POWER_STATE  PD_PowerStateMapping[POWER_SYSTEM_MAXIMUM];
--------------------------------------------------^^^^^^^^^^^^^^^^^
   SYSTEM_POWER_STATE  PD_DeepestSystemWake;
} CM_POWER_DATA, *PCM_POWER_DATA;


clickmaker   (2007-08-01 13:41:00) [5]

typedef enum
{
LastModidied = 1,
Accessed,
Created
}
так что-ли?


Dib@zol   (2007-08-01 13:33:00) [6]

Эт тебе не сюда, а на http://forum.vingrad.ruнадо (ИМХО).


Наверх

Титульная страница Поиск, карта сайта Написать письмо