Подскажите, как прегерузить тип?

Тема в разделе "LANGS.C", создана пользователем Magnum, 10 сен 2008.

  1. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    Привет
    Задача в общем такая

    Есть переменная, которая от случая к случаю юзается как ULONG и как PVOID
    Есть я, которому не нравится постоянно уточнять в скобках (ULONG)rel_index и (PVOID)rel_index непосредственно перед юзанием.

    Хочется как-то перегрузить тип, чтобы компилятор не ругался и потребность уточнения отпала бы.

    Заранее благодарен отозвавшимся
     
  2. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    было бы вообще суперно, если бы перегрузка типа касалась только одной переменной rel_index
     
  3. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    Можно создать структуру с одним членом, и в ней 4 метода: operator long(), operator PVOID () и 2 operator=() для каждого типа, и все должно быть ок =)
     
  4. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    поддерживаю Velheart.
     
  5. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    Velheart
    гм
    можете пример кода привести?
    В такие дебри С++ я еще не забирался
     
  6. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    Примерно так
    Код (Text):
    1. struct ddd
    2. {  
    3.     long data;
    4.     operator void*(){return (void*)data;};
    5.     operator long(){return data;};
    6.     ddd& operator=(void* right){data = (long)right;return *this;};
    7.     ddd& operator=(long right){data = right;return *this;};
    8. };
    upd:а потом можно уже
    Код (Text):
    1. ddd var;
    2. long var2;
    3. var = 6;
    4. var2 = var + var2;
    и т.д.
     
  7. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    Velheart
    спасибо огромное!!!!