Оператора перегрузка
От: Barbar1an Украина www.mightywill.com
Дата: 10.03.19 14:14
Оценка:
template<class T> struct CObject
{
    CNexusObject *    Object = nullptr;

    CObject(){}
    CObject(CNexusObject * o) : Object(o)
    {
    }

    bool operator == (const CNexusObject * o) const 
    {
        return Object && Object == o;
    }

    T * operator->()
    {
        return dynamic_cast<T *>(Object);
    }

    operator T * () const
    {
        return dynamic_cast<T *>(Object);
    }
};

int main()
{
    CObject<CNexusObject> a;
    CNexusObject * b = nullptr;

            
    if(a == b)   // нужно чтобы вызывался мой оператор ==, вместо этого: error C2666: 'CObject<CNexusObject>::operator ==': 2 overloads have similar conversions
    {
    }
}



как разрулить?
http://files.rsdn.org/27037/zx128.png
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.