Я пытаюсь создать синглтон с gcc
Я нашел несколько примеров на stackoverflow, к сожалению, они не работают для меня.
Вот мой файл .h:
#ifndef GLOBALINFO_H
#define GLOBALINFO_H
#include <string>
#include <iostream>
using namespace std;
class GlobalInfo
{
private:
GlobalInfo();
GlobalInfo(GlobalInfo const&);
GlobalInfo& operator=(GlobalInfo const&);
public:
static GlobalInfo& GetInstance();
virtual ~GlobalInfo();
bool isFullScreen;
int screenWidth;
int screenHeight;
string title;
protected:
};
#endif // GLOBALINFO_H
вот мой .cpp:
#include "GlobalInfo.h"
GlobalInfo::GlobalInfo()
{
isFullScreen = false;
screenWidth = 800;
screenHeight = 600;
cout << "creating GlobalInfo" << endl;
}
GlobalInfo::~GlobalInfo()
{
}
GlobalInfo &GlobalInfo::GetInstance() {
static GlobalInfo instance;
return instance;
}
GNU C говорит:
include\GlobalInfo.h|12|error: 'GlobalInfo::GlobalInfo(const GlobalInfo&)' is private|
Если я удаляю
GlobalInfo(GlobalInfo const&);
GlobalInfo& operator=(GlobalInfo const&);
из заголовка, яя получаю фактическую копию синглтона, что плохо в этой ситуации, так как я использую isFullScreen для хранения информации в зависимости от ввода пользователя.