0

私は本格的な C++ プログラムに取り組んでいます。久しぶりに授業を受けたので、少しさびています。ゲーム ループの基本的な実装を開始するとき (SFML を動作させるために永遠に費やした後)、私は継続的に問題に遭遇しました。しばらくして、コンストラクター関数を定義しようとしたときの問題のリストをエラーにまで絞り込みました。コンパイルしようとすると、次のエラーが発生します。

1>game.obj : エラー LNK2005: "public: __thiscall game::game(void)" (??0game@@QAE@XZ) は main.obj で既に定義されています

1>game.obj : エラー LNK2005: "public: void __thiscall game::gameLoop(void)" (?gameLoop@game@@QAEXXZ) は main.obj で既に定義されています

メインの私のコードは

#include <SFML/Graphics.hpp>

#include "game.cpp"

int main()
{
    return 0;
}

game.h では

#ifndef _game_h
#define _game_h

class game
{
public:
     game();
    void gameLoop();
};

#endif

そしてgame.cppでは

#include <iostream>
#include "game.h"

game::game()
{
    std::cout << "Constructed thingie";
}

void game::gameLoop()
{
    std::cout << "RAN LOOP!" << std::endl;
}

なぜこのエラーが発生するのかわかりません。プロジェクトを開始したいので、何か助けていただければ幸いです。

4

1 に答える 1

7

#include "game.h"ではなく、メインに含める必要がありますgame.cpp

于 2012-07-25T21:07:32.380 に答える