Got a bit of an issue with my code here - my Replit C++ code keeps complaining about an undefined reference to inarray::intarray(int), probably the line "intarray d(432); but I swear I've already defined it in my intarray.h and intarray.cpp files. Any idea whats the issue? Code's below, and thanks in advance. Here's the driver file:
#include <iostream>
#include "intarray.h"
using std::cout;
using std::endl;
using std::cin;
int main(){
intarray d(432);
}
Here's the cpp file
#include <iostream>
#include <array>
#include <math.h>
#include <utility>
#include <initializer_list>
#include "intarray.h"
using std::cout;
using std::endl;
using std::string;
using std::array;
using std::ceil;
template <class T>
intarray<T>::intarray(T inp){
int digitcount=1;
if (typeid(T) == typeid(int)){
intptr =new int[digitcount]{inp};
}
if (typeid(T) == typeid(string)){
digitcount=ceil(inp.length()/19);
cout << digitcount<<endl;
intptr =new int[digitcount];
}
}
template <class T>
void intarray<T>::printdigits(){
/*for (const auto& i: digits){
cout << i;
}*/
for (int i=0;i<arraysize;i++){
cout<<intptr[i];
}
}
And here's the header file:
#include <iostream>
#include <array>
using std::cout;
using std::endl;
using std::string;
using std::array;
//using std::array;
#include <utility>
#include <initializer_list>
#ifndef intarray_h
#define intarray_h
template <class T>
class intarray{
private:
int arraysize=1;
int *intptr;
public:
intarray()=default;
intarray(T inp);
void printdigits();
int getSize(){return arraysize;};
};
#endif