C++ HELP Make dynamic array member\'s type into a template. Make the entire clas
ID: 3683716 • Letter: C
Question
C++ HELP
Make dynamic array member's type into a template. Make the entire class into a template.
--------------------------------------------------------------------------------------------------------------------------------------------------------
#ifndef TEMPLIST_H_
#define TEMPLIST_H_
#include <iostream>
using namespace std;
struct TemperatureList{
public:
double* list;
long size;
long MAX_SIZE;
TemperatureList(int n);
void add_temperature(double temperature);
bool full() const;
long get_size() const;
double get_temperature(long position) const;
void output(ostream &outs) const;
double get_last() const;
void detele_last();
};
#endif
templist.cpp
#include "templist.h"
TemperatureList::TemperatureList(int n){
list = new double[n];
MAX_SIZE = n;
size = 0;
}
void TemperatureList::add_temperature(double temperature){
if (full() == false){
list[size] = temperature;
size += 1;
}
}
bool TemperatureList::full() const{
if (size == MAX_SIZE) return true;
return false;
}
long TemperatureList::get_size() const{
return size;
}
double TemperatureList::get_temperature(long position) const{
if (position >= size || position < 0) return 0.0;
return list[position];
}
void TemperatureList::output(ostream &outs) const{
for (long i = 0; i < size; i++)
outs << list[i] << endl;
}
double TemperatureList::get_last() const{
if (size == 0) return 0.0;
return list[size-1];
}
void TemperatureList::detele_last(){
if (size > 0);
size -= 1;
}
main.cpp
#include "templist.h"
int main(){
TemperatureList 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;
}
Explanation / Answer
#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;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.