определяют как operator void *, так и operator bool

Я попытался создать класс с одним оператором bool и одним оператором void * , но компилятор сказал, что они неоднозначны. Могу ли я каким-то образом объяснить компилятору, какой оператор использовать, или я могу не использовать их оба?

class A {
public:
    operator void*(){
        cout << "operator void* is called" << endl;
        return 0;
    }

    operator bool(){
        cout << "operator bool is called" << endl;
        return true;
    }
};

int main()
{
    A a1, a2;
    if (a1 == a2){
        cout << "hello";
    }
} 
5
задан Default 28 November 2010 в 01:33
поделиться