从object转换为int会丢失精度C ++

时间:2017-05-02 13:30:36

标签: c++ casting

在我的TimeCode.h中,我有以下内容:

inline TimeCode::operator int() const;

每当我将TimeCode对象转换为int时,应该能够执行哪个。

但是当我做的事情如下:

(int) firstTimeCode > (int) scndTimeCode

编译器向我抛出以下错误:

cast from 'TimeCode*' to 'int' loses precision [-fpermissive]

有谁知道问题是什么以及如何解决?非常感谢你提前!

1 个答案:

答案 0 :(得分:6)

查看错误消息 - 它告诉您,您正在将TimeCode*转换为int - 也就是说,至少有一个操作数是指针TimeCode,而不是实际的TimeCode。因此,您需要首先取消引用该指针以正确调用您的运算符。