2009-07-25 16 views
1

いつものように学んだことは、これらの違いがどういう意味か分かりませんでした。Objective-C @interface/pointer clarification

@class Player; 
@class Map; 

@interface View : NSView 
{ 
    Player* player_; 
    Map* currentMap_; 
    NSMutableArray *worldArray; 
    NSMutableArray *itemArray; 
    float cellHeight_; 
} 

@end 

気にする必要はありませんが、星が写っている側はまったく効果がありません。今私はなぜ私が混乱していたのか知​​っています。

+0

を私はまた私が持っている本のうちの、それらのどれもが、いつでも取らないことに言及したいと思いますこれを明確にするために全く。 – Sneakyness

答えて

7

すべての目的のCオブジェクトは、*が示すポインタで参照されます。星が左か右のどちらにあるのかはコンパイラにとって重要ではありません。私はそれが個人的な好みだと信じています。

floatにはObjective CオブジェクトではなくCプリミティブなので*はありません。

+0

申し訳ありませんが、私はプリミティブの部分についても分かりましたが、星の側面は何の違いもありませんか? – Sneakyness

+1

明らかにそうではありません。まあ、これはなぜ私が何のためにも非常に混乱していた理由を説明します。 – Sneakyness

+0

いいえ、全く違いはありません。 –

2

コンパイラにはまったく違いはありません。これは開発者の好みです。

次は同じです。その種類誰かの対

Player* player_; 

私はその種類の誰かの思考プロセスについて一度読んで面白いコメントが

Player* player_; 
Player *player_; 
Player * player_; 

がありました

Player *player_; 

この種のものはGoogleでは不可能なので、今すぐ見つけることはできません。基本的な考え方は、Player *型の開発者はplayer_がPlayerオブジェクトへのポインタであると考えているということです。それ以外の方法で入力する人は、参照されたplayer_変数にPlayerオブジェクトが含まれていると考えています。微妙な違いがありますが、最終的には同じことです。あなたがのために見たいと思うかもしれません

ことの一つは、1行に複数のポインタ変数作成されたとき:

int *p, q; // p is int*, q is int 
int* p, q; // not so obvious here, but p is int*, q is int 
int *p, *q; // it's a lot more obvious with the * next to the variable 
+0

Googleには本当に不可能です。私はこれを理解することができなかったためにどのように怒っているのかを伝えることはできません。 – Sneakyness