Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Дефолт-параметры в структуре.


Автор: AndreySol 20.1.2007, 17:33
К примеру объявил я структуру в каком-то хедере:
Код

typedef struct _SET_PARAMS
{
    DWORD dwSize;            // Size of this structure.
    BOOL bValue1;
    BOOL bValue2;
    LPCTSTR lpSTRING;
    VOID* pReserved;        // Reserved. Must be NULL. 
} SET_PARAMS;

Можно ли как-то задать параметры по умолчанию, чтобы к примеру bValue1 = TRUE, а bValue2 = FALSE. Т.е. что-бы при заполнении структуры, перед использованием, не указывать значения для этих членов структуры, а в ф-ции которая принимает эту структуру в качестве параметра можно бы было сделать
Код

if(bValue1 == TRUE)
{
    ..........
}

Если указать сразу BOOL bValue1 = TRUE; компилятор ругается.

Автор: zkv 20.1.2007, 17:44
Цитата(AndreySol @  20.1.2007,  17:33 Найти цитируемый пост)
Можно ли как-то задать параметры по умолчанию, чтобы к примеру bValue1 = TRUE, а bValue2 = FALSE.

написать конструктор на объем занимаемой структурой оперативной памяти это не повлияет 
Код

typedef struct _SET_PARAMS
{
    DWORD dwSize;            // Size of this structure.
    BOOL bValue1;
    BOOL bValue2;
    LPCTSTR lpSTRING;
    VOID* pReserved;        // Reserved. Must be NULL. 
    _SET_PARAMS()
   {
     bValue1 = TRUE;
     bValue2 = FALSE;
   } 
} SET_PARAMS;

Автор: Earnest 20.1.2007, 18:45
Только не надо писать typedef struct ... как в вин-хедерах
Лучше сразу как положено в C++, struct XXX { };
Ну на кой нужна структура и typedef с практически тем же именем.

Автор: AndreySol 22.1.2007, 08:20
Понятно, Всем спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)