CURRENCY - это класс, который определен где-то в вашем коде (т.е. это не нативный тип C ++).
Ваш класс может уже иметь возможность привести к int (или long), если он написан кем-то другим. Вы можете попытаться выяснить это путем (1) чтения файлов заголовков или (2) компиляции этого
CURRENCY mymoney;
printf("%d",static_cast<long>(mymoney));
и посмотрите, позволит ли компилятор вам сойти с рук - и если это произойдет, то, скорее всего, для класса уже определен оператор приведения.
Многие люди не любят, когда вы используете sprintf в коде C ++, но предпочитают использовать потоки. Если это так, то вместо этого может быть определен оператор <<
- вы можете попытаться определить это путем (1) чтения включаемых файлов или (2) компиляции этого кода
CURRENCY mymoney;
std::cout << mymoney << std:: endl;
Если нет, возможно, вам придется написать код для перегрузки <<operator
и / или оператора длинного приведения в классе Currency, чтобы вернуть значения, необходимые для вывода потока и приведения к другим типам.