ndakota
07-04-2009, 15:17
ciao a tutti con l'aiuto del libro desing patterns stavo provando a guardare qualcosa.. volevo iniziare dal pattern singleton che mi sembra piuttosto semplice ma ho già avuto le prime difficoltà.. i codici sono questi:
Singleton.h
#ifndef SINGLETON_H
#define SINGLETON_H
class Singleton
{
public:
static Singleton* Instance();
protected:
Singleton();
private:
static Singleton* _instance;
};
#endif
Singleton.cpp
#include <iostream>
#include "Singleton.h"
Singleton* Singleton::_instance = 0;
Singleton* Singleton::Instance()
{
if(_instance == 0)
_instance = new Singleton;
else
std::cout << "another instance of singleton can't be instanced" << std::endl;
return _instance;
}
main.cpp
#include <iostream>
#include "Singleton.h"
int main()
{
Singleton* a = Singleton.Instance();
Singleton* b = Singleton.Instance();
Singleton* c = Singleton.Instance();
return 0;
}
nel main a parte i tre warning di variabili non utilizzate ricevo anche tre errori del tipo "expected primary-expression before '.' token"..
dove sbaglio?
Singleton.h
#ifndef SINGLETON_H
#define SINGLETON_H
class Singleton
{
public:
static Singleton* Instance();
protected:
Singleton();
private:
static Singleton* _instance;
};
#endif
Singleton.cpp
#include <iostream>
#include "Singleton.h"
Singleton* Singleton::_instance = 0;
Singleton* Singleton::Instance()
{
if(_instance == 0)
_instance = new Singleton;
else
std::cout << "another instance of singleton can't be instanced" << std::endl;
return _instance;
}
main.cpp
#include <iostream>
#include "Singleton.h"
int main()
{
Singleton* a = Singleton.Instance();
Singleton* b = Singleton.Instance();
Singleton* c = Singleton.Instance();
return 0;
}
nel main a parte i tre warning di variabili non utilizzate ricevo anche tre errori del tipo "expected primary-expression before '.' token"..
dove sbaglio?