ну и как это соотносится со стандартом?
От: JakeS  
Дата: 23.09.04 12:22
Оценка:
typedef struct tFilterDef
{
    tFilterDef() : Type(sft_General), ID(0) {}; 
    tFilterDef(SimpleFilterType type, long id) : Type(type), ID(id) {};
    tFilterDef(tFiltersArray *pArr) {Type = sft_GeneralMulti; ID = (long)pArr;}
    bool operator==(const tFilterDef &flt) const {return (flt.Type == Type) && (flt.ID == ID);};
    bool operator!=(const tFilterDef &flt) const {return (flt.Type != Type) || (flt.ID != ID);};
    bool operator<(const tFilterDef &flt) const {return (Type < flt.Type)||((Type == flt.Type)&&(ID < flt.ID));};
    operator tFiltersArray*() {if (Type == sft_GeneralMulti) return (tFiltersArray *)ID; return NULL;}
    SimpleFilterType Type;
    long ID;
} tFilterDef;


при сравнении двух переменных данного типа оператором != компайлер для обоих переменных делает operator tFiltersArray*() а затем сравнивает. в чем смысл??
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.