The following is a class I built. Compiling the cpp file I get NO errors. But when I build the .h file and .cpp file, I always get these 2 linker errors and I'm not sure why. I followed the step by step process of creating a project workspace using the Microsoft visual C++ compiler and made sure both files were inserted into that workspace. So if anyone could tell me why I'm getting linker errors, I'd really appreciate it. Thanks so much.
Code:#define MAX_SIZE 20 class List { public: List(); //starts list //member functions int Insert(int);//inserts a number at the end(if there is room) int Insert(int, int);//if room and if valid position given, inserts value //in middle int Delete(int);//if given a position, deletes a value from list int Size();//returns list size int Sum(); //returns values' sum in list float Average();//returns values' in list int Evens();// returns how many even numbers in list after counting up int Greater(int);//returns how many numbers are greater than a //given parameter value after counting up int WhereIs(int);//gives position of first occurence of a value, if not //found then 0 is returned int Smallest();//returns list's smallest value void Clear();//resets list object to represent an empty list void Show();//shows the contents of the list private: void CalculateSum(void); int arr[MAX_SIZE];//size can be at most 20 integers int sum; int size; };Code://This file contains the declarations of the list header// #include <iostream> #include "list.h" using namespace std; //List member functions List::List() //gives user an empty list, { Clear();//clears list for inserting }//end of constructor int List::Insert (int value) { if (size<MAX_SIZE) { //determines if size is less than 20 arr[size++]=value; CalculateSum(); return 1; } cout<<"*** Invalid List Position Number\n"; return 0; } int List::Insert (int pos, int value) { if ((pos>0) && (pos < size) && (size<MAX_SIZE)) { for (int i=size;i>pos-1;i--) //loop arr[i]=arr[i-1]; arr[pos-1]=value; size++; CalculateSum(); return 1; } cout<<"*** Invalid List Position Number\n"; return 0; } int List::Delete (int pos) { if ((pos>0) && (pos < size)) { //determines if position is greater //than 0 and less than size for (int i=pos-1;i<size;i++) //loop arr[i]=arr[i+1]; size--; CalculateSum(); return 1; } cout<<"*** Invalid List Position Number\n"; return 0; } int List::Size (void) { //returns size of list return size; } float List::Average (void) { //returns average of list return sum/size; } int List::Evens (void) { int e=0; for (int i=0;i<size;i++) //loop if ((arr[i] % 2) == 0) //test for even e++;//increment evens return e; } int List::Greater(int x) { int g=0; for (int i=0;i<size;i++) //loop if (arr[i]>x) //test for greater than g++;//increment greater return g; } int List::Smallest (void) { int s=32767; for (int i=0;i<size;i++) //loop if (arr[i]<s) //test if arr[i] is smaller than s s=arr[i]; //set s to arr[i] return s; } int List::WhereIs(int x) { for (int i=0;i<size;i++) //loop if (arr[i]==x) //test if arr[i] is equal to x return i+1; return 0; } void List::CalculateSum(void) { //zero out sum sum=0; //add all the numbers together for (int i=0;i<size;i++) sum+=arr[i]; } int List::Sum(void) { //returning sum of list return sum; } void List::Clear(void) { //clears the array element by element //set all to zero for (int i=0;i<MAX_SIZE;i++) arr[i]=0; //reset the size size=0; } void List::Show(void) { //displaying contents of list cout << "Contents: "; for (int i=0;i<size;i++) cout << arr[i] << ", "; cout << "\n"; }
Thanks a lot guys.



LinkBack URL
About LinkBacks



