New to classes. Getting alot of errors when calling the private member variables (from down in main). Most are telling me either i can't access the private member variable IDs or the other member variables i'm attempting to access (debit, credit, balance) are undefined ('identifier not found'). Also getting 'overloaded member function' errors for just about each function. Help please?
#include <iomanip>
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <string.h>
#define SIZE 50
using namespace std;
class CorporateClass {
public:
CorporateClass(int I): ID(I) { }//contstructor method
CorporateClass(){} //constructor method
//int GetID(){ return ID; } //accessor?
void initialize(ifstream text, float &, float &, float &);
void div_update(float, float, float);
void add_credit(ifstream text, float &, float &);
void ded_debit(ifstream text, float &, float &);
void HQset();
private:
int ID; //4 digit int values
float balance;
float credit;
float debit;
};
//** ******* **
void CorporateClass::initialize(ifstream& text, float &debit, float &credit, float &balance) {
//GIVEN: Open input stream & index variable.
//TASK: Initializes variables with data from input stream.
//RETURNS: Variables now containing initialized data.
text>>balance;
text>>credit;
text>>debit;
}
//** ******* **
void CorporateClass::div_update(float total_d, float total_c, float total_b) {
//GIVEN: Corporate update variables.
//TASK: Update Corporate update variables.
//RETURNS: Updated Corporate updated variables.
}
//** ******* **
void CorporateClass::add_credit(ifstream text, float &total_c, float &total_b) {
//GIVEN: Open input stream & two corporate update variables.
//TASK: Add a debit to the division's budget.
//RETURNS: Updated corporate update variables.
float amt_toadd;
text>>amt_toadd;
credit+=amt_toadd;
balance+=amt_toadd;
total_c+=amt_toadd;
total_b-=amt_toadd;
return;
}
//** ******* **
void CorporateClass::ded_debit(ifstream text, float &total_c, float &total_b) {
//GIVEN: Open input stream & two corporate update variables.
//TASK: Ded a debit from the division's budget.
//RETURNS: Updated corporate update variables.
float amt_toded;
text>>amt_toded;
debit-=amt_toded;
balance-=amt_toded;
total_d-=amt_toded;
total_b+=amt_toded;
return;
}
//** ******* **
void CorporateClass::HQset(ifstream& text, ofstream& output, int &i) {
//GIVEN: None.
//TASK: None.
//RETURNS: None.
}
//** ******************************** **
void main(void) {
//** ********** **
int i=0;
char temp;
int tempID;
ifstream text("data7.txt", ios::in);
ofstream output("output.txt", ios::out | ios::app);
float total_d=0.00, total_c=0.00, total_b=0.00, total_f=0.00;//update variables.
//objects initialized with ID values
CorporateClass HQ(0000), div1(2017), div2(3026), div3(4039), div4(6049), div5(7052);
text.get(temp);
if(text.is_open())
while(i<=SIZE && temp!='Q')
{
if(temp=='I')
{
text>>tempID;
if(tempID==div1.ID)
div1.initialize(text, debit, credit, balance);
else if(tempID==div2.ID)
div2.initialize(text, debit, credit, balance);
else if(tempID==div3.ID)
div3.initialize(text, debit, credit, balance);
else if(tempID==div4.ID)
div4.initialize(text, debit, credit, balance);
else if(tempID==div5.ID)
div5.initialize(text, debit, credit, balance);
}
if(temp=='A')
{
text>>tempID;
if(tempID==div1.ID)
div1.add_credit(text, total_c, total_b);
else if(tempID==div2.ID)
div2.add_credit(text, total_c, total_b);
else if(tempID==div3.ID)
div3.add_credit(text, total_c, total_b);
else if(tempID==div4.ID)
div4.add_credit(text, total_c, total_b);
else if(tempID==div5.ID)
div5.add_credit(text, total_c, total_b);
}
if(temp=='D')
{
text>>tempID;
if(tempID==div1.ID)
div1.ded_debit(text, total_d, total_b);
else if(tempID==div2.ID)
div2.ded_debit(text, total_d, total_b);
else if(tempID==div3.ID)
div3.ded_debit(text, total_d, total_b);
else if(tempID==div4.ID)
div4.ded_debit(text, total_d, total_b);
else if(tempID==div5.ID)
div5.ded_debit(text, total_d, total_b);
} if(temp=='P') { print_budgets(text, output, i); } //Calls function.
text.get(temp);
}
GetData(text, output, i); //calls main function.
if(output.is_open())
output<<endl<<"END OF PROGRAM OUTPUT."<<endl;
}