如何从我的类的ceil函数中调用c ++中的ceil函数

时间:2014-04-14 12:36:28

标签: c++ ceil

我需要委托' ceil'功能。 我的班级有方法' ceil',需要返回cpp的本地方法' ceil'。 怎么称呼它?

double ceil() {
return ceil();
}

- 这是一个递归

3 个答案:

答案 0 :(得分:5)

double ceil() {
    return ::ceil(something); // ceil actually has an argument
}

当然,上面是在类定义中定义方法时;以下是在课外定义方法的时候:

double MyClass::ceil() {
    return ::ceil(something);
}

正如评论所示,使用std::ceil中的<cmath>更好,因为确实::ceil不能保证来自C库的ceil。< / p>

答案 1 :(得分:3)

您可以通过撰写std::ceil来指明std::ceil

假设您包含C ++标头<cmath>而不是已弃用的C标头<math.h>。在这种情况下,如果您不想包含正确的标题,则它会在全局命名空间中显示,并且可以::ceil访问。

请记住,它需要一个参数,因此您发布的代码即使在符合条件后也无法发挥作用。

答案 2 :(得分:1)

在自定义的ceil中使用std :: ceil。

更好的是让一个强制转换运算符加倍,如

operator double() 在你的班级中将你的数据转换为double并在任何需要的地方调用ceil(obj),所以,你没有ceil作为你的类中的成员,并且你的对象被转换为double(通过你的强制转换操作符)和std :: ceil被自动调用。