2012-08-09 10 views
14

これは奇妙な問題です。私は2日前にコーディングしていました。クラスの行外定義エラーですが、ヘッダファイルに宣言されています

Fruit.h:私のヘッダファイル(Fruit.h)に私はそうのようなanimateGrow()と呼ばれる方法で追加

class Fruit { 
private: 
    // Member variables here 

public: 
    // Other methods here 
    void animateGrow(); 
}; 

をしかし、私はCPPファイルで同じメソッドを追加しようとすると、私はOut-of-line definition of 'animateGrow' does not match any declaration in 'Fruit'エラーを取得します。ヘッダーに宣言されていますが、Xcodeはそのメソッドを見つけることができないようです。

Fruit.cpp:

#include "SimpleAudioEngine.h" 
#include "Fruit.h" 
#include "Tree.h" 

using namespace cocos2d; 
using namespace CocosDenshion; 

Fruit::Fruit() { 
    // Constructor 
} 

// Getter Methods 
// Setter Methods 
// Other Methods 

void Fruit::animateGrow() { 
    // I get an error here when I type it. 
} 

完全なコード:(リンクは削除) (コードでは、Treeクラスが存在し、それが与えるとして他のすべてのメソッドと関数はanimateGrow()を除き正常に動作しています私のエラー)

+0

今後のユーザーのための有用性は何にも限定されていないので、質問を閉じるべきです。あなたはそれを固定してうれしいです、そして幸運。 –

+0

@DavidRodríguez-dribeas質問を閉じるにはどうすればよいですか?申し訳ありませんが、私はこれに精通していません。 – alxcyl

+0

Uhm ...タグの下にリンクはありませんか? (それはあなたがそれをするためにいくつかの評判を必要とするかもしれない...リンクがない場合、心配しないで、他の誰かがそれを閉じるだろう - 私はすでに閉じるために投票した、それはちょうどより多くの票を必要とする:) –

答えて

9

修正しました。

理由はわかりませんが、Xcodeは変更をヘッダファイルに保存しませんでした。私はXcodeを閉じてヘッダファイルを開いて、変更はそこにはありません。もう一度メソッドを追加して保存しました。 CPPファイルを開いて、新しいメソッドを追加しました。

本当に奇妙です。

+0

再オープンされた後、Xcodeは私のケースではOKです。 –

+0

clangを使ってBSDで全く同じエラーメッセージが表示されました。あなたの答えは、私のコードのヘッダーを見せてくれました。確かに、ヘッダーに関数を宣言しませんでした。ありがとう! –

+0

私はそれが私を助けてくれると言いたいです。ありがとうございます – hotpro

関連する問題