C++翻译成目标-C
我寻找到从C++翻译一些代码,目标C和我遇到了一个包含与在最后一个const符号功能的实例。我在C++上很生疏,我不记得这代表了什么(虽然我一直在使用Google)。我想知道如何强制Objective-C。目前,这里就是我:C++翻译成目标-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
}
编辑:发现我的方式错误,它只是一个另外的问题其他的地方该节目('我爱那些容易的人')。话虽如此,我确实希望确保常量声明不会干扰任何进一步的问题,并希望检查是否应该有任何我需要做出的声明(如单例方法等)。谢谢你们的答案!
常量在C++中意味着这个方法不会改变对象的状态,因此可以仅使用const的方法,除非他们宣布可变它不能改变类变量。
如果你的类是不可变的,你可以放心地认为每一个你声明的方法是一个常量方法是等效的。
但是,因为你没有改变任何伊娃,你在“翻译”的代码正确(从逻辑上来说),因为你没有任何变异伊娃。
我看不出有任何特别的问题与您的代码,不应该有一个语法(既不语义)错误。
PS:这不是你应该如何比较浮点数,look here。
由于这个特殊的原因(由于最终结果等原因),尽管这段代码是从O'reilly的书中找到的(所以我不是非正统的罪魁祸首),但这应该不重要。谢谢你的信息,但。我真的需要确保这不会导致问题,我的代码也没问题。 – TheCodingArt 2013-03-05 20:46:29
请参阅[这里](http://*.com/questions/1549869/what-does-const-mean-follow-a-function-method-signature) – juanchopanza 2013-03-05 20:19:32
http://*.com/questions/3868106/does-an-approximation-of-cs-const-methods-exist-for-objective-c – Pradheep 2013-03-05 20:20:26
只是一个评论...你知道吗,你可以使用Objective-C++来创建一个连接器吗?所以你可以直接编译你的C++代码而不需要翻译它 – Pedrom 2013-03-05 20:21:03