gpt4 book ai didi

c++ - Objective-C 中此数据结构 (C++) 的替代方案

转载 作者:行者123 更新时间:2023-11-28 07:19:28 24 4
gpt4 key购买 nike

我在 C++ 中有这个数据结构 (struct):

struct Vector3f
{
float x;
float y;
float z;

Vector3f()
{
}

Vector3f(float _x, float _y, float _z)
{
x = _x;
y = _y;
z = _z;
}
};

我最近一直在学习和使用 Objective-C。我发现有很多事情我在 Objective-C 中做不到,而在 C++ 中却可以。所以,我希望能够在 Objective-C 中使用构造函数来做到这一点。我知道 Objective-C 不像 C++ 那样支持函数重载。因此,不需要第一个构造函数。

最佳答案

您只需使用三个属性:

@interface Vector : NSObject

@property(nonatomic, assign) float x, y, z;

- (id)init;
- (id)initWithX:(float)x y:(float)y z:(float)z;

@end

@implementation Vector

- (id)init {
// Members default to 0 implicitly.
return [super init];
}

- (id)initWithX:(float)x y:(float)y z:(float)z {
if (self = [super init]) {
self.x = x;
self.y = y;
self.z = z;
}

return self;
}

@end

请注意,在这里重写 init 是可选的,因为它所做的只是调用父类(super class)的 init 方法。

关于c++ - Objective-C 中此数据结构 (C++) 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19736352/

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