Guten Abend,
Ich hab ein Problem mit meiner Template Klasse, ich bekomme vom Compiler(GCC 4.8) "undefined reference to 'Funktion' " Fehler. Ich weis nicht worin der Fehler liegt,vermute ihn aber in der Definition der Funktionen.Könnt ihr mir sagen,wo ich meinen Fehler hab?
Notecard.h
Notecard.cpp
Ich hab ein Problem mit meiner Template Klasse, ich bekomme vom Compiler(GCC 4.8) "undefined reference to 'Funktion' " Fehler. Ich weis nicht worin der Fehler liegt,vermute ihn aber in der Definition der Funktionen.Könnt ihr mir sagen,wo ich meinen Fehler hab?
C-Quellcode
- /*
- * Notecard.h
- *
- * Created on: 06.05.2014
- * Author: rico
- */
- #ifndef NOTECARD_H_
- #define NOTECARD_H_
- #include <iostream>
- #include <string>
- namespace LearnHelper {
- template<class T>
- class Notecard {
- public:
- Notecard();
- ~Notecard();
- std::string getTitle() const {return Title;}
- void setTitle(const std::string &title) {Title = title;}
- T getContent() const {return Content;}
- void setContent(const T &content) {Content = content;}
- bool getKnown() const {return known;}
- void setKnown(const bool &known) {this->known = known;}
- std::string getQuestion() const {return Question;}
- void setQuestion(const std::string& question) {Question = question;}
- int getRepeated() const {return repeated;}
- Notecard operator++(int unused);
- Notecard& operator++();
- protected:
- std::string Title;
- std::string Question;
- T Content;
- bool known;
- int repeated;
- };
- } /* namespace LearnHelper */
- #endif /* NOTECARD_H_ */
C-Quellcode
- /*
- * Notecard.cpp
- *
- * Created on: 06.05.2014
- * Author: rico
- */
- #include "Notecard.h"
- namespace LearnHelper {
- template<class T>
- Notecard<T>::Notecard() {
- // TODO Auto-generated constructor stub
- repeated = 0;
- }
- template<class T>
- Notecard<T>::~Notecard() {
- // TODO Auto-generated destructor stub
- }
- template<class T>
- Notecard<T> Notecard<T>::operator ++(int unused)
- {
- repeated++;
- return *this;
- }
- template<class T>
- Notecard<T>& Notecard<T>::operator++()
- {
- ++repeated;
- return *this;
- }
- } /* namespace LearnHelper */
C-Quellcode
- /*
- * main.cpp
- *
- * Created on: 06.05.2014
- * Author: rico
- */
- #include <iostream>
- #include <memory>
- #include "Notecard.h"
- int main(int argc, char*argv[])
- {
- LearnHelper::Notecard<std::string> card1; //undefined reference to `LearnHelper::Notecard<std::string>::Notecard()' selber Fehler für den Destruktor
- std::cout<<(++card1).getRepeated()<<std::endl; //undefined reference to `LearnHelper::Notecard<std::string>::operator++()'
- return 0;
- }