2011-07-28 4 views
0

私は私のtypedef構造体のようTypedef Structに加算、減算、乗算、および除算を許可するにはどうすればよいですか?

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

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

コードのように私の「のVector3D」の上で数学関数を使用することができるようにしたい:

私は私のtypedef構造体のVector3Dを処理できるようにするにはどうすればよい
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; 
} 

この演算子?

答えて

3

C Objective-Cは、メソッドのオーバーロードをサポートしていません。 代わりにaddmultiply関数を記述する必要があります。

0

Objective-Cでは、構造体にはメソッドがまったく存在しません。機能を実行するには、vector3D add(vector3D, vector3D)などの通常のC関数を使用する必要があります。

Objective-Cクラスを使用して同様のメソッドを定義することはできますが、生涯の問題、特にWRTの中間結果はネストされた「メソッド呼び出し」によってより複雑な式になります。誰が中間体をリリースするのですか?そのような状況ではオートレリーズはいいですか?あなた自身に尋ねなければならない質問です。

関連する問題