web-dev-qa-db-ja.com

クラスでの行外定義エラーですが、ヘッダーファイルで宣言されています

今、これは奇妙な問題です。私は2日前にコーディングをしていて、停止して、今すぐ続けました。ヘッダーファイル(_Fruit.h_)に、次のようにanimateGrow()というメソッドを追加しました。

Fruit.h:

_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()を除く他のすべてのメソッドと関数は正常に機能しています。私にエラー)

15
alxcyl

修正しました。

理由はわかりませんが、Xcodeは変更をヘッダーファイルに保存しませんでした。 Xcodeを閉じてヘッダーファイルを開きましたが、変更がありません。メソッドを再度追加して保存しました。 CPPファイルを開いて、新しいメソッドを追加しましたが、正常に機能しました。

本当に変だ。

10
alxcyl