如何允许我的Typedef Struct添加,减去,乘以和除?

时间:2011-07-28 19:21:07

标签: objective-c math struct typedef

我希望能够像我这样的“vector3D”使用数学函数

vector3D a = v3d(1.0,1.0,1.0);
vector3D b = v3d(2.0,0.0,5.0);

a+=b;
vector3D c = a*b;

我的typedef结构的代码:

typedef struct _vector3D{
    float x;
    float y;
    float z;
}vector3D;


static inline vector3D
v3d(const float x, const float y, const float z)
{
    vector3D v = {x,y,z};
    return v;
}

如何允许我的typedef struct vector3D来处理这些运算符?

2 个答案:

答案 0 :(得分:3)

C,因此Objective-C不支持方法重载。 您必须改为编写自己的addmultiply函数。

答案 1 :(得分:0)

在Objective-C中,struct根本没有方法。您必须使用常规C函数(如vector3D add(vector3D, vector3D)等)来执行此功能。

你可以使用Objective-C类并在它们上定义类似的方法,但是你应该非常清楚生命周期问题,特别是在使用嵌套“方法调用”的更复杂表达式中的WRT中间结果。谁将发布中间体?在这种情况下自动释放任何好处吗?等等。这些是你必须问自己的问题。