我需要委派“赛尔”的职能。我的类有方法'ceil',它需要返回cpp的本地方法'ceil‘。怎么叫呢?
double ceil() {
return ceil();
}发布于 2014-04-14 12:38:32
double ceil() {
return ::ceil(something); // ceil actually has an argument
}当然,上面是在类定义中定义方法的时候;下面是在类之外定义方法时使用的内容:
double MyClass::ceil() {
return ::ceil(something);
}正如评论所指出的那样,使用包含std::ceil的<cmath>更好,因为实际上,::ceil并不一定是C库中的ceil。
发布于 2014-04-14 12:40:08
您可以通过编写std::ceil来指定std::ceil。
这假设您包含的是C++头,而不是被弃用的C头<math.h>。在这种情况下,如果您不想包含正确的标头,那么它就在全局命名空间中,并且可以作为::ceil访问。
请记住,这需要一个参数,所以您发布的代码即使在对其进行限定之后也无法工作。
发布于 2014-04-14 12:49:26
使用std::ceil在您的定制细胞内。
最好是让一个演员操作人员加倍,如
类中的操作符double()将数据转换为double,并在需要的地方调用ceil(obj),因此,类中没有ceil作为成员,并且您的对象被转换为double (通过cast操作符)并自动调用std::ceil。
https://stackoverflow.com/questions/23060273
复制相似问题