1

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++ に関するいくつかのテキストを参照しましたが、自分が何をしているのかわかりません。明確化していただければ幸いです。

4

0 に答える 0