Jan 11, 2017 at 3:58pm
in line number 55 i get the error. Kindly guide
Jan 11, 2017 at 4:04pm
box ob1();
declares a function named obj1 that takes no arguments and returns a box.
To fix this problem you only need to remove the parentheses.
Jan 11, 2017 at 4:23pm
Please use indentation and think about the logic of the main while loop.
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 86 87 88 89 90 91 92 93 94 95 96
|
#include <iostream> // <===== use standard headers
//#include <conio.h>
#include <cstdlib>
using namespace std; // <===== either add this line or qualify evrything necessary with std::
class box
{
float length, breadth, height;
public:
box()
{
cout << "Default Constructor" << endl;
length = 2;
breadth = 3;
height = 4;
}
box( float l, float b, float h )
{
cout << "Parameterised Constructor" << endl;
length = l;
breadth = b;
height = h;
}
box( box &ob )
{
cout << "Copy constructor" << endl;
length = ob.length;
breadth = ob.breadth;
height = ob.height;
}
void volume()
{
float volume;
volume = length * breadth * height;
cout << "The volume is " << volume << endl;
}
~box()
{
cout << "Destructor invoked" << endl;
}
};
int main() // <===== int, not void
{
cout << " Program for constructor overloading " << endl;
float a, b, c;
int ch;
char rep;
rep = 'y'; // <===== HAVE TO ADD THIS, OR NOTHING WILL HAPPEN
while ( rep == 'y' )
{
cout << "\nEnter choice " << endl; // <==== put these 3 lines inside the while loop
cout << "1 Default 2 Parameterised 3 Copy" << endl;
cin >> ch;
box gk;
switch( ch )
{
case 1:
{ // <===== Add brace, because of limited scope of ob1
box ob1; // <===== No brackets
ob1.volume();
}
break;
case 2:
{
cout << "Enter length " << endl;
cin >> a;
cout << "Enter breadth " << endl;
cin >> b;
cout << "Enter height " << endl;
cin >> c;
box ob2( a, b, c );
ob2.volume();
}
break;
case 3:
{
box ob3( gk ); // <===== obscure; gk was a no-parameters box
ob3.volume();
}
break;
default:
{
cout << "Invalid choice check!" << endl;
}
}
cout << "Continue (y/n)? "; // <==== give a choice to reply
cin >> rep;
}
// getch(); // <==== uncomment if desperate
}
|
Last edited on Jan 11, 2017 at 4:24pm