C ++ «перегрузка» оператора if ()

Можно ли изменить поведениеif() так что:

class Foo {
    int x;
};

Foo foo;
if(foo)

только в том случае, если значениеx это что-то отличное от нуля? или же...

Будет ли явное пользовательское преобразование типов в int работать / будет ли это подходящим подходом? или же...

Это лучше сделать что-то вродеif(foo.getX())?

Ответы на вопрос(2)

Ваш ответ на вопрос