Witam. Mam taką klasę:
#ifndef MYCLASS_H
#define MYCLASS_H
//myclass.h
template <typename T>
class myClass
{
public:
myClass();
static const int getLicznik(){return licznik;}
private:
static int licznik;
T liczba;
};
#endif // MYCLASS_H
//plik: myclass.cpp
#include "myclass.h"
template <typename T>
int myClass<T>::licznik = 0;
template <typename T>
myClass<T>::myClass()
{
liczba *= 1,4;
licznik ++;
}
Funkcja gówna programu wygląda jak poniżej:
#include <QtCore/QCoreApplication>
#include <iostream>
//#include "myclass.h" // blad: undefined reference to `myClass<int>::myClass()
#include "myclass.cpp"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
myClass<int> obj1;
myClass<int> obj2;
myClass<double> obj3;
std::cout << obj1.getLicznik() << std::endl;
std::cout << obj3.getLicznik() << std::endl;
std::cout << myClass<int>::getLicznik() << std::endl;
return a.exec();
}
Gdy dołączam plik *.h mam błąd jak powyżej, natomiast gdy dołączę plik *.cpp wtedy wszystko jest OK. Co należy zrobić aby dołączyć plik *.h i program działał prawidłowo?
Będę wdzięczny za pomoc.