好吧,这可能是今天最愚蠢的问题,但假设我有一堂课:
NSDecimalNumber *numOne = [NSDecimalNumber numberWithFloat:1.0];
NSDecimalNumber *numTwo = [NSDecimalNumber numberWithFloat:2.0];
NSDecimalNumber *numThree = [NSDecimalNumber numberWithFloat:3.0];
为什么我不能有一个函数来添加这些数字:
- (NSDecimalNumber *)addThem {
return (self.numOne + self.numTwo + self.numThree);
}
我提前为自己是个白痴而道歉,谢谢!
你不能做你想做的事,因为 C 和 Objective C 都没有运算符重载。相反,你必须写:
- (NSDecimalNumber *)addThem {
return [self.numOne decimalNumberByAdding:
[self.numTwo decimalNumberByAdding:self.numThree]];
}
如果您愿意使用 Objective-C++(将源代码重命名为 .mm),那么您可以这样写:
NSDecimalNumber *operator + (NSDecimalNumber *a, NSDecimalNumber *b) {
return [a decimalNumberByAdding:b];
}
现在你可以写:
- (NSDecimalNumber *)addThem {
return self.numOne + self.numTwo + self.numThree;
}
Go C++!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)