C++ Objective-C中此数据结构(C+;+;)的备选方案
我用C++编写了这个数据结构(struct):C++ Objective-C中此数据结构(C+;+;)的备选方案,c++,objective-c,struct,C++,Objective C,Struct,我用C++编写了这个数据结构(struct): 我最近一直在学习和使用Objto-C。我发现在ObjuleC中我不能做很多事情,我可以在C++中完成。所以,我希望能够在Objective-C中使用构造函数来实现这一点。我知道Objto-C不支持像C++那样的函数重载。因此,不需要第一个构造函数。您只需使用三个属性: @interface Vector : NSObject @property(nonatomic, assign) float x, y, z; - (id)init; - (i
我最近一直在学习和使用Objto-C。我发现在ObjuleC中我不能做很多事情,我可以在C++中完成。所以,我希望能够在Objective-C中使用构造函数来实现这一点。我知道Objto-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 <代码>是可选的,因为它所做的全部都是调用超类“代码> init < /Cord>方法.< /p>,那么您尝试了什么?我用变量做了一个简单的C++类结构。然后创建一个函数,输入三个变量,它将创建一个Vector3f结构,并分配每个变量,如:
vec3f.x=\ux代码>。把矢量还给我谢谢你。这回答了我的问题。我会在你解决这个问题的时候给它做标记。如果这个类有可能被子类化,它应该有一个指定的初始值设定项,另一个初始值设定项应该在self
上调用它。所以-init
应该只执行返回[self initWithX:0y:0z:0]代码>。
@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