私は本で見つけたシングルトンのデザインパターンを実装しようとしていますが、私はここでシングルトンを使う必要はないかもしれないが、 GamePropertiesManagerと私は次のコンパイル(?というか、リンカ)エラー取得しています:Main.cpp|| undefined reference to GamePropertiesManager::GetInstance
シングルトンの実装と未定義の参照:: GetInstance
私はそうのような私の主な機能には、私のシングルトンを使用しようとしているが...
#include "GamePropertiesManager.hpp"
..
int main()
{
GamePropertiesManager::Create();
GamePropertiesManager::GetInstance()->test();
...
}
マイGamePropertiesManagerが定義されていますこのようなヘッダーファイル:
class GamePropertiesManager
{
public:
static GamePropertiesManager* GetInstance();
static void Create();
static void Destroy();
void test();
protected:
GamePropertiesManager();
static GamePropertiesManager* _instance;
enum GameMode{ PLAYERVSPLAYER, PLAYERVSCOM };
GameMode _gameMode;
std::string _player1Name, _player2Name;
int _player1Score, _player2Score;
std::string _matchSurvivor;
int _gameSpeed;
};
、別のcppファイルで宣言:
#include "GamePropertiesManager.hpp"
//testic
#include <iostream>
GamePropertiesManager* GamePropertiesManager::_instance = NULL;
void GamePropertiesManager::Create()
{
if (!_instance) //instance not yet created
_instance = new GamePropertiesManager();
}
void GamePropertiesManager::Destroy()
{
delete _instance;
_instance = 0;
}
GamePropertiesManager::GamePropertiesManager() :
_gameMode(PLAYERVSCOM), _player1Name("Player 1"), _player2Name("Player 2"),
_player1Score(0), _player2Score(0), _matchSurvivor("NONE"), _gameSpeed(1)
{
}
void GamePropertiesManager::test()
{
std::cout << "test success!" << std::endl;
}
誰かがそれに目を通すことができれば私が間違ってやっているかを説明私はそれを非常に感謝します!
です**静的GamePropertiesManagerの定義*でGetInstance()**? – DumbCoder