operator int()
- это функция преобразования , которая объявляет пользовательское преобразование из A
в int
, так что вы можете написать код, подобный
A a;
int x = a; // invokes operator int()
Это отличаетсяиз int operator()()
, который объявляет оператор вызова функции, который не принимает аргументов и возвращает int
.Оператор вызова функции позволяет вам писать код, подобный
A a;
int x = a(); // invokes operator()()
Какой из них вы хотите использовать, полностью зависит от поведения, которое вы хотите получить.Обратите внимание, что операторы преобразования (например, operator int()
) могут вызываться в неожиданное время и могут вызывать пагубные ошибки.