Cześć,
Jak w temacie, muszę stworzyć fabrykę obiektów IShape, która jest singletonem, dodatkowo ma ona mieć możliwość sprawdzenia czy jakiś obiekt jest tworem tej fabryki, niestety utknąłem, moja fabryka wygląda tak:
#pragma once
#include "IShapeFactory.h"
#include "Circle.h"
#include "Triangle.h"
#include "Rectangle.h"
#include <list>
class IShapeFactory
{
list<IShape*> creationList;
private:
IShapeFactory();
IShapeFactory(const IShapeFactory &);
IShapeFactory& operator=(const IShapeFactory&);
virtual ~IShapeFactory();
public:
static IShapeFactory& getInstance()
{
static IShapeFactory* instance = NULL;
if (!instance)
{
static IShapeFactory instance = new IShapeFactory();
}
return *instance;
}
IShape* CreateShapeInstance(ShapeEnum a_eShape)
{
if (a_eShape == circle) {
Circle* wskshape = 0;
Circle shape;https://github.com/FranekWKimono/SingletonFactory
wskshape = &shape;
creationList.push_back(wskshape);
IShape* iShape = wskshape;
return iShape;
}
else if (a_eShape == triangle)
{
Triangle* wskshape = 0;
Triangle shape;
wskshape = &shape;
creationList.push_back(wskshape);
IShape* iShape = wskshape;
return iShape;
}
else if (a_eShape == rectangle)
{
Rectangle* wskshape = 0;
Rectangle shape;
wskshape = &shape;
creationList.push_back(wskshape);
IShape* iShape = wskshape;
return iShape;
}
else {
cout << "nie ma takiej figury" << endl;
return 0;
}
}
bool IsFactoryChildren(IShape* a_oShapeObj) {
bool found = (std::find(creationList.begin() , creationList.end(), a_oShapeObj) != creationList.end());
return found;
}
void Destroy() {
creationList.clear();
}
};
Funkcja main:
IShapeFactory::getInstance().CreateShapeInstance(triangle);
co w połączeniu daje mi błędy typu:
Error LNK2019 unresolved external symbol "public: static class IShapeFactory __cdecl IShapeFactory::getInstance(void)" (?getInstance@IShapeFactory@@SA?AV1@XZ) referenced in function _main
Od czego w ogóle powinienem zacząć poszukiwania tego błędu?