Im getting errors with my constructor and destructor, does anyone know what im doing wrong?
#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
using namespace std;
class menuItemType
{
public:
menuItemType();
~menuItemType();
void accessData();
private:
void getData(menuItemType item[], ofstream& outData);
void showMenu(menuItemType item[], ofstream& outData);
void printCheck (double& total, double& tax, double& totalF, ofstream& outData);
string itemName;
double itemCost;
};
menuItemType :: menuItemType()
{
getData(menuItemType item[], ofstream& outData);
}
menuItemType :: ~menuItemType()
{
printCheck (double& total, double& tax, double& totalF, ofstream& outData);
}
int main()
{
ofstream outData;
outData.open("OutMenu.txt");
cout<< " Welcome! " << endl;
cout<< "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << endl;
cout<< " *To select an Item from the list below, " << endl;
cout<< "just indicate the Item number for the item \n\n" << endl;
outData << " Welcome! " << endl;
outData << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << endl;
outData << " *To select an Item from the list below, " << endl;
outData<< "just indicate the Item number for the item \n\n" << endl;
menuItemType a;
a.accessData();
system("pause");
return 0;
}
void menuItemType :: getData(menuItemType item[], ofstream& outData)
{
int i=0;
ifstream inData;
inData.open("InMenu.txt");
cout << fixed << setprecision(2);
outData << fixed << setprecision(2);
while(!inData.eof())
{
inData >> item[i].itemName >> item[i].itemCost;
++i;
}
}
void menuItemType :: showMenu(menuItemType item[],ofstream& outData)
{
int choice = 0;
double total = 0.0, totalF = 0.0, tax = 0.0;
char exit = 'y';
int j = 1, z = 1, i = 1;
//the Menu
for (int i=0; i< 8; i++)
{
cout << j << ". " << setw(18) << left << item[i].itemName << "$" << setw(10) << item[i].itemCost << endl;
outData << j << ". " << setw(18) << left << item[i].itemName << "$" << setw(10) << item[i].itemCost << endl;
j++;
}
cout << endl;
while(exit == 'y' || exit == 'Y')
{
cout << "Please Enter your Selection or 0 to Exit : ";
cin >> choice;
if(cin.fail())
{
cout << "~~~~~~~~~Invalid selection~~~~~~~~~" << endl;
cin.clear();
cin.ignore(1000,'\n');
}
else if (choice==0) {break;}
else
{
choice--;
total += (item[choice].itemCost);
tax = (total * .05);
totalF = total + tax;
cout << endl;
outData << endl;
}
cout << endl;
outData << endl;
cout << item[choice].itemName << " " << item[choice].itemCost << endl;
cout << "======================================================" << endl;
cout << "Do you want to continue (Y/N): ";
outData << item[choice].itemName << " " << item[choice].itemCost << endl;
outData << "======================================================" << endl;
outData << "Do you want to continue (Y/N): ";
cin >> exit;
}
printCheck(total, tax, totalF, outData);
}
void menuItemType :: accessData()
{
showMenu();
}
void menuItemType :: printCheck(double& total, double& tax, double& totalF, ofstream& outData)
{
cout << "\n\nThanks for Dinning With Us!" << endl;
cout << "<><><><><><><><><><><><><><>\n" << endl;
cout << "Customer Receipt " << endl;
cout << "SubTotal: $" << total <<endl;
cout << "Tax: $" << tax << endl;
cout << " -----" << endl;
cout << "Total: $" << totalF << endl;
cout << "Please Come Again!" << endl;
outData << "\n\nThanks for Dinning With Us!" << endl;
outData << "<><><><><><><><><><><><><><>\n" << endl;
outData << "Customer Receipt " << endl;
outData << "SubTotal: $" << total <<endl;
outData << "Tax: $" << tax << endl;
outData << " -----" << endl;
outData << "Total: $" << totalF << endl;
outData << "Please Come Again!" << endl;
}