我需要委托' ceil'功能。 我的班级有方法' ceil',需要返回cpp的本地方法' ceil'。 怎么称呼它?
double ceil() {
return ceil();
}
- 这是一个递归
答案 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被自动调用。