how to add sub classes together

Idk how to add the calculateCost from the other sub classes and base class together. Help.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 void PackageInventory::CalculateTotalCost()
{
  cout << "\n____________________________________________\n";

  cout << "\nCalculating Total Cost\n";

  for(int i=0; i < packages.size(); i++)
    {
      cout << packages[i].calculateCost();
      cout <<endl;
    }
  for(int i=0; i < expressPackages.size(); i++)
    {
      cout << expressPackages[i].calculateCost();
      cout <<endl;
    }
  for (int i=0; i<priorityPackages.size(); i++)
    {
      cout << priorityPackages[i].calculateCost();
      cout <<endl;
    }
  for (int i=0; i<internationalPackages.size(); i++)
    {
      cout << internationalPackages[i].calculateCost();
      cout <<endl;
    }


}


This is the output:
Calculating Total Cost
4.25
12.00
40.90
33.08
196.78
79.40
74.62
12.00
18.00
30.00
0.00
65.00
0.00
11.97
165.00
154.00
335.00


I want these numbers to add together giving me one number for the sum of all of them
Last edited on
change the CalculateTotalCost() method to return double (or int) and have a variable sum running through the various loops:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
double PackageInventory::CalculateTotalCost()
{
  double sum{};
  cout << "\n____________________________________________\n";

  cout << "\nCalculating Total Cost\n";

  for(int i=0; i < packages.size(); i++)
    {
      cout << packages[i].calculateCost();
      sum += packages[i].calculateCost();
      cout <<endl;
    }
  for(int i=0; i < expressPackages.size(); i++)
    {
      cout << expressPackages[i].calculateCost();
      sum += expressPackages[i].calculateCost();
      cout <<endl;
    }
  for (int i=0; i<priorityPackages.size(); i++)
    {
      cout << priorityPackages[i].calculateCost();
      sum += priorityPackages[i].calculateCost();
      cout <<endl;
    }
  for (int i=0; i<internationalPackages.size(); i++)
    {
      cout << internationalPackages[i].calculateCost();
      sum += internationalPackages[i].calculateCost();
      cout <<endl;
    }
    return sum;

}
I did it that way but it did not work it still printed the same thing
show your full program
it says my program is too long :,,(
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
double PackageInventory::CalculateTotalCost()
{
  double sum=0;

  cout << "\n____________________________________________\n";

  cout << "\nCalculating Total Cost\n";

  for(int i=0; i < packages.size(); i++)
    {
      cout << packages[i].calculateCost();
      sum+= packages[i].calculateCost();
      cout <<endl;
    }
  for(int i=0; i < expressPackages.size(); i++)
    {
      cout << expressPackages[i].calculateCost();
      sum+=expressPackages[i].calculateCost();
      cout <<endl;
    }
  for (int i=0; i<priorityPackages.size(); i++)
    {
      cout << priorityPackages[i].calculateCost();
      sum+=priorityPackages[i].calculateCost();
      cout <<endl;
    }
  for (int i=0; i<internationalPackages.size(); i++)
    {
      cout << internationalPackages[i].calculateCost();
      sum+=internationalPackages[i].calculateCost();
      cout<<endl;
    }
  return sum;
this function by itself seems OK, the problem is elsewhere in the program.
Topic archived. No new replies allowed.