Code::Blocks を使用して簡単なゲームを作成しています。適切なファイル構造を維持する方法を学ぼうとしていますが、.cpp ファイルで定義されているオブジェクトからプログラム スコープの関数を呼び出すことができないように見えるため、明らかに何かが欠けています。
だから、ヘッダーファイルinclude/tank.hで宣言され、.cppファイルsrc/tank.cppで定義されているオブジェクトtankがあります(これらはCode::Blocksが作成したファイルです) file->new->class メニューを使用したときの私)。また、apply.h という関数 apply_image() のヘッダー ファイルもあります。apply.h は main.cpp ファイルに含まれています。
src/tank.cpp が次のようになっている場合:
#include "tank.h"
void tank::drawMe(SDL_Surface* screen)
{
apply_surface(x,y, tankImg, screen);
}
|エラー: 'apply_surface' はこのスコープで宣言されていません| というコンパイラ エラーが発生します。したがって、次のように「apply.h」に #include を追加します。
#include "tank.h"
#include "apply.h"
void tank::drawMe(SDL_Surface* screen)
{
apply_surface(x,y, tankImg, screen);
}
そして今、`apply_surface(int, int, SDL_Surface*, SDL_Surface*)' の複数の定義| を読み取るコンパイラ エラーが発生します。勝てない!
C++ に関するいくつかのテキストを参照しましたが、自分が何をしているのかわかりません。明確化していただければ幸いです。