Перегрузка операторов C++
От: PavelCH  
Дата: 09.08.09 15:19
Оценка:
Здраствуйте все.

Не подскажите как правильно перегрузить преобразование к типу int/unsigned? Например есть код:

class VRGB
{
public:
   // Красная компонента
   unsigned char    r;
   // Зеленая компонента
   unsigned char    g;
   // Голубая компонента
   unsigned char    b;
   // Альфа-составляющая
   unsigned char    a;
public:
   // Перегрузка при ведения к типу int
   operator int(){return *((int*)this);}
   // Конструктор для типа int
   VRGB(int Integer){ *((int*)this) = Integer; }
}

void SomeAction(int SomeValue)
{
...
}

int main()
{
   int  a;
   VRGB b;
   b = a;
   a = b;
   SomeAction(b);
}


Класс VRGB занимает 4 байта, ровно столько сколько занимает переменная типа int. Я правильно написал перегрузку? Будет ли работать код корректно если переменная b, будет хранится, например, в регистре? Или надо писать код перегрузки приведения по-другому?
Нехай щастить
перегрузка операторов
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.