gpt4 book ai didi

C++ 翻译成 objective-C

转载 作者:太空宇宙 更新时间:2023-11-04 11:58:09 45 4
gpt4 key购买 nike

我正在研究将一些代码从 C++ 转换为 Objective C,我遇到了一个实例,该实例包含一个函数,最后带有 const 符号。我对 C++ 很生疏,我不记得这代表什么(虽然我一直在谷歌搜索)。我想知道如何将其强制转换为 Objective-C。目前,这是我所拥有的:

C++代码:

  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 :

-(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 声明不会干扰任何进一步的问题,并希望检查以确保是否应该有任何我需要做的声明(例如单例方法等)。谢谢大家的回答!

最佳答案

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

如果您的类是不可变的,您可以安全地假设您声明的每个方法都等同于 const 方法。

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

我没有发现您的代码有任何特别的问题,应该没有语法(既不是语义)错误。

PS:这不是您应该比较 float 的方式,look here .

关于C++ 翻译成 objective-C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15233273/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com