/tmp/cc8VVSeG.o(.text+0x122): In function `main':
: undefined reference to `TemperatureList<double>::TemperatureList(int)'
/tmp/cc8VVSeG.o(.text+0x13d): In function `main':
: undefined reference to `TemperatureList<double>::add_temperature(double)'
/tmp/cc8VVSeG.o(.text+0x158): In function `main':
: undefined reference to `TemperatureList<double>::add_temperature(double)'
/tmp/cc8VVSeG.o(.text+0x173): In function `main':
: undefined reference to `TemperatureList<double>::add_temperature(double)'
/tmp/cc8VVSeG.o(.text+0x18e): In function `main':
: undefined reference to `TemperatureList<double>::add_temperature(double)'
/tmp/cc8VVSeG.o(.text+0x1a8): In function `main':
: undefined reference to `TemperatureList<double>::get_last() const'
collect2: ld returned 1 exit status
This is the code:
templist.h
:
#ifndef TEMPLIST_H_
#define TEMPLIST_H_
#include <iostream>
using namespace std;
template <class T>
class TemperatureList{
public:
T* list;
long size;
long MAX_SIZE;
TemperatureList(int n);
void add_temperature(T temperature);
bool full() const;
long get_size() const;
T get_temperature(long position) const;
void output(ostream &outs) const;
T get_last() const;
void detele_last();
};
#endif
templist.cpp
:
#include "templist.h"
template <class T>
TemperatureList<T>::TemperatureList(int n){
list = new T[n];
MAX_SIZE = n;
size = 0;
}
template <class T>
void TemperatureList<T>::add_temperature(T temperature){
if (full() == false){
list[size] = temperature;
size += 1;
}
}
template <class T>
bool TemperatureList<T>::full() const{
if (size == MAX_SIZE) return true;
return false;
}
template <class T>
long TemperatureList<T>::get_size() const{
return size;
}
template <class T>
T TemperatureList<T>::get_temperature(long position) const{
if (position >= size || position < 0) return 0.0;
return list[position];
}
template <class T>
void TemperatureList<T>::output(ostream &outs) const{
for (long i = 0; i < size; i++)
outs << list[i] << endl;
}
template <class T>
T TemperatureList<T>::get_last() const{
if (size == 0) return 0.0;
return list[size-1];
}
template <class T>
void TemperatureList<T>::detele_last(){
if (size > 0);
size -= 1;
}
main.cpp
:
#include "templist.h"
int main(){
TemperatureList<double> temp(50);
temp.add_temperature(4.0);
temp.add_temperature(7.0);
temp.add_temperature(8.0);
temp.add_temperature(9.6);
cout << "Last element is : " << temp.get_last() << endl;
return 0;
}