1

重複の可能性:
未定義の参照/未解決の外部シンボル エラーとは何ですか? また、どのように修正すればよいですか?

私はゲーム プログラムを持っていますが、非常にイライラしています。すべてが正常に動作していたので、関数のセットごとに個別のファイルを作成して、プログラムをクリーンアップすることにしました。コードは非常に長く、複数のファイルがありますが、基本的な考え方は次のとおりです。

Windows XP で Code::Blocks IDE を使用しています

私のentity.hで、そのクラスのすべての関数と変数を宣言しました。私のentity.cppには、他のすべてのファイルと同様にそれが含まれています。しかし、私はまだエンティティ.hのすべてのメソッドと他のすべてのヘッダーファイルへの未定義の参照があることを示すエラーの膨大なリストを取得しています。たとえば、印刷を簡単にする関数呼び出し print() があります。これは、entity.h ファイルから呼び出す最初のメソッドです。次のエラーが表示されます。

print() のコードは次のとおりです。

void print(string f) {
 cout<<f<<endl;
} 

どのように私はそれを呼んでいます:

void Player::win(){
entity e;
e.print("You have defeated the orc");

} エラー:

In function 'ZN6Player3winEv': undefined reference to 'entity::print(std::string)'

はい、私はエンティティのオブジェクトを持っています。エンティティクラスとファイルの他のすべての関数でも発生します。

4

2 に答える 2

2
void print(string f) {
 cout<<f<<endl;
} 

する必要があります

void entity::print(string f) {
 cout<<f<<endl;
} 
于 2012-10-13T22:13:38.163 に答える
0
void print(string f) {
 cout<<f<<endl;
} 

グローバル関数です

電話したい場合

e.print("You have defeated the orc");

次に、の実装が必要です

void entity::print(string f)
于 2012-10-13T22:16:54.827 に答える