trouble initializing constructor

Code:

class List

{

public:

List(const int* arr, int sz);

//initializes list object by copying the data from the array arr (of size sz) into it

int HowMany(int val); //returns the number of times the value val appears in the list

void PrintSquares(); //prints squares of data elements in list, separated by commas

private:

int data[100]; //list of up to 100 numbers

int size; //number of values currently stored

};

This is my header file. The following code now is the definition file. I'm supposed to initialize the constructor with a constant int pointer and that is the part that is giving me the trouble. I'm not so sure if i defined my other functions correctly. But if anyone can give me a heads up on how to go about solving the constructor problem and analyzing if I did the other functions right, I would really appreciate it. Thank you.

Code:

` #include <iostream>`

#include "list2.h"

using namespace std;

List::List(const int* arr, int sz)

{

//initializes list object by copying the data from the

//array arr (of size sz) into it

arr[data];// this part trips me out, I also tried this

size=sz;

}

int List:: HowMany(int val) //returns the number of times the value

//val appears in the list

{

int v=0;

for(int i=0; i<size; i++)

if (data[i]==val)

v++;

return v;

}

void List:: PrintSquares() //prints squares of data elements in list,

//separated by commas

{

for(int i=0; i<size; i++)

{

cout<<data[i]*data[i];

for (int j=0;j<data[i];j++)

cout<<',';

cout<<endl;

}

}