Problem beim Einbinden eines Singletons
-
Hallo zusammen,
Ich lerne C++ und versuche gerade einen Singleton einzubinden.
Beim Kompilieren erhalte ich zwei Fehler, die ich auch nach
längerem Ausprobieren nicht beheben konnte. Deshalb die Frage, wo liegt hier der Fehler?#ifndef SINGLETON_H #define SINGLETON_H class Foo{ public: static Foo& instance(){ static Foo _instance; return _instance; } ~Foo(); int doSomething(int b); private: Foo(){}; Foo(const Foo&); Foo & operator = (const Foo&); }; #endif
#include "singleton.h" int Foo::doSomething(int b){ b += 1; return b; }
#include <iostream> #include "singleton.h" int main() { int b = 0; b = Foo::instance().doSomething(3); std::cout << b << std::endl; }
Fehler 1
error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: __thiscall Foo::~Foo(void)" (??1Foo@@QAE@XZ)" in Funktion ""void __cdecl `public: static class instance & __cdecl Foo::instance(void)'::`2'::`dynamic atexit destructor for '_instance''(void)" (??__F_instance@?1??instance@Foo@@SAAAV1@XZ@YAXXZ)". D:\Programmieren\C++(VisualStudio)\C++Aufgaben\iso6\iso_project_5\iso_project_5\main.obj iso_project_5Fehler 2
error LNK1120: 1 nicht aufgelöste Externe D:\Programmieren\C++(VisualStudio)\C++Aufgaben\iso6\iso_project_5\Debug\iso_project_5.exe 1 1 iso_project_5Gruss Hoselupf
-
Du hast ~Foo() nirgendwo definiert...
-
Vielen Dank dot für die schnelle Antwort.
Endlich funktioniert'sGruss Hoselupf