I was trying to implement this dynamic array thing and I ran into some problems When I try to compile it, the compiler tells me that bunch of my functions are not declared in this scope
here are the files
dynamicArray.h
#ifndef DYNAMICARRAY_H
#define DYNAMICARRAY_H
#include <ctime>
#include<iostream>
class dynamicArray{
public:
dynamicArray();
int * array_constructor(int * &intPtr, int &size );
int * array_resize(int * &intPtr, int& currSize, int& newSize);
void array_destructor(int * &intPtr);
void array_set(int* &intPtr, int &size);
};
#endif // DYNAMICARRAY_H
dynamicArray.cpp
#include "dynamicArray.h"
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int * array_constructor(int * &intPtr, int &size ){
if(intPtr != NULL){
delete [] intPtr;
}
intPtr = new int[size];
for (int i = 0; i < size; i++){
intPtr[i] = i*i;
}
return intPtr;
}
int * array_resize(int * &intPtr, int& currSize, int& newSize){
if(newSize == 0){
delete [] intPtr;
return NULL;
}else if((newSize == currSize) || (newSize < 0)){
return intPtr;
}
int * array = new int[newSize];
for (int i = 0; i < newSize; i++){
array[i] = i*i;
}
return array;
}
void array_destructor(int * &intPtr){
delete [] intPtr;
intPtr = NULL;
}
void array_set(int*& intPtr, int& size){
srand(time(0));
for (int i = 0; i < size; i++){
intPtr[i] = rand();
}
}
main.cpp
#include "dynamicArray.h"
#include <array>
#include <iostream>
using namespace std;
void print(int array[], int size){
if(array == NULL){
cout << "array is empty" << endl;
return;
}
for(int i = 0; i < size; i++){
cout << "array[" << i << "] = " << array[i] << endl;
}
cout << endl;
return;
}
int main() {
int *myArray = NULL;
int size = 8;
int newSize1 = 10;
int newSize2 = 5;
int newSize3 = -1;
int finalSize = 1;
myArray = array_constructor(myArray, size);
print(myArray, size);
myArray = array_resize(myArray, size, newSize1);
print(myArray, newSize1);
myArray = array_resize(myArray, newSize1, newSize2);
print(myArray, newSize2);
myArray = array_resize(myArray, newSize2, newSize3);
print(myArray, newSize2);
array_set(myArray, newSize2);
print(myArray, newSize2);
array_destructor(myArray);
print(myArray, finalSize);
return 0;
}
I tried putting int * dynamicArray::array_constructor(int * &intPtr, int &size ) instead, but no luck Did I do something wrong with the header file or in dynamicArray.cpp? This worked before, but I forgot how to do it.