首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++到objective-C的转换

C++到objective-C的转换
EN

Stack Overflow用户
提问于 2013-03-06 04:17:48
回答 1查看 140关注 0票数 1

我正在考虑将一些代码从C++转换到Objective C,我遇到了一个实例,该实例包含一个函数,末尾有一个常量符号。我对C++相当生疏,我不记得这代表了什么(尽管我已经在谷歌上搜索过了)。我想知道怎么把这个传给Objective-C。目前,这是我所拥有的:

C++代码:

代码语言:javascript
复制
  float RenderingEngine1::RotationDirection() const
    {
        float delta = m_desiredAngle - m_currentAngle;
        if (delta == 0)
            return 0;

        bool counterclockwise = ((delta > 0 && delta <= 180) || (delta < -180));
        return counterclockwise ? +1 : -1;
    }

Objective-C:

代码语言:javascript
复制
-(float)getRotationDirection{
    float delta = desiredAngle - currentAngle;
    if (delta == 0) {
        return 0;
    }

    bool counterclockwise = ((delta > 0 && delta <= 180) || (delta < -180));

    float test = counterclockwise ? +1 : -1;
    NSLog(@"%f",test );
    return counterclockwise ? +1 : -1; //problem

}

编辑:发现了我的方法的错误,这只是程序中其他地方的一个附加问题(“我喜欢简单的”)。话虽如此,我确实希望确保const声明不会干扰任何进一步的问题,并希望检查以确保是否应该有任何我需要进行的声明(例如单例方法等)。谢谢你们的回答!

EN

回答 1

Stack Overflow用户

发布于 2013-03-06 04:27:04

c++中的常量意味着这个方法不会改变对象的状态,因此它可能只使用常量方法,而且它不能改变类变量,除非它们被声明为可变的。

如果您的类是不可变的,那么您可以放心地假设您声明的每个方法都是const方法的等价物。

但是,由于您没有更改任何ivar,因此您正在正确地“翻译”代码(从逻辑上讲),因为您没有更改任何ivar。

我看不出你的代码有什么特别的问题,不应该有语法(也不是语义)错误。

PS:这不是比较浮点数的方式,look here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15233273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档