I am getting a garbage output when I add two objects
I am adding two objects:
Box3 = Box1 + Box2;
The output is this:
Volume of Box1 : 210
Volume of Box2 : 1560
Volume of Box3 : 5400
The sum of Box1 & Box2 = 5.56112e-308
Process returned 0 (0x0) execution time : 2.124 s
Press any key to continue.
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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
#include <iostream>
#include<cstdlib>
#include<cctype>
using namespace std;
class Box {
public:
void print(ostream& outs) const;
double getVolume(void) {
return length * breadth * height;
}
void setLength( double len ) {
length = len;
}
void setBreadth( double bre ) {
breadth = bre;
}
void setHeight( double hei ) {
height = hei;
}
// Overload + operator to add two Box objects.
Box operator+(const Box& b) {
Box box;
box.length = this->length + b.length;
box.breadth = this->breadth + b.breadth;
box.height = this->height + b.height;
return box;
}
private:
double length; // Length of a box
double breadth; // Breadth of a box
double height; // Height of a box
};
void Box::print(ostream& outs) const
{
double sum;
outs << sum;
}
// Main function for the program
int main() {
Box Box1; // Declare Box1 of type Box
Box Box2; // Declare Box2 of type Box
Box Box3;
// double sum;
// Declare Box3 of type Box
double volume = 0.0; // Store the volume of a box here
// box 1 specification
Box1.setLength(6.0);
Box1.setBreadth(7.0);
Box1.setHeight(5.0);
// box 2 specification
Box2.setLength(12.0);
Box2.setBreadth(13.0);
Box2.setHeight(10.0);
// volume of box 1
volume = Box1.getVolume();
cout << "Volume of Box1 : " << volume <<endl;
// volume of box 2
volume = Box2.getVolume();
cout << "Volume of Box2 : " << volume <<endl;
// Add two object as follows:
Box3 = Box1 + Box2;
// volume of box 3
volume = Box3.getVolume();
cout << "Volume of Box3 : " << volume <<endl;
//Box sum(Box1, Box2, Box2);
Box3 = Box1 + Box2;
cout <<endl;
cout << "The sum of Box1 & Box2 = " ;
Box3.print(cout);
return 0;
}
|
I am getting closer and closer to the answer that I want.
But not exactly correct so far
Please assist
Line 39 attempts to output the variables defined on the preceding line ... which hasn't been assigned a value.
1 2 3 4 5
|
void Box::print(ostream& outs) const
{
double sum;
outs << sum; // and just what is sum here?
}
|
Difficult to see what you would want to output at this point, anyway. A box is just an object.
How about
1 2 3 4 5 6
|
void Box::print(ostream& outs) const
{
outs << "I am a box of length " << length
<< ", breadth " << breadth
<< " and height " << height << '\n';
}
|
Last edited on
Topic archived. No new replies allowed.