Box It Hackerrank Solution in C++. Design a class named Box whose dimensions are integers and private to the class. The dimensions are labelled: length, breadth b, and height h. The default constructor of the class should initialize l, b, and h to 0. The parameterized constructor Box(int length, int breadth, int height) should initialize Box's l, b and h to length, breadth and height.
The copy constructor BoxBox B) should set l, b and h to B's l, b and h, respectively.
Apart from the above, the class should have 4 functions:
- int getLength() - Return box's length
- int getBreadth() - Return box's breadth
- int getHeight() - Return box's height
- long long CalculateVolume() - Return the volume of the box
Overload the operator for the class Box. Box A < Box B if:
- A.l < B.l
- A.b < B.b and A.l==B.l
- A.h < H.h and A.b==B.b and B.b==B.l
Overload operator << for the class Box().
If B is an object of class Box:
cout<<B should print B.l, B.b and B.h on a single line separated by spaces.
For example,
Box b1; // Should set b1.l = b1.b = b1.h = 0;
Box b2(2, 3, 4); // Should set b1.l = 2, b1.b = 3, b1.h = 4;
b2.getLength(); // Should return 2
b2.getBreadth(); // Should return 3
b2.getheight(); // Should return 4
b2.CalculateVolume(); // Should return 24
bool x = (b1 < b2); // Should return true based on the conditions given
cout<<b2; // Should print 2 3 4 in order.
Constraints
0 <= l, b, h <= 10^5
Two boxes being compared using the < operator will not have all three dimensions equal.
Submit your solution here: Click here
Box It Hackerrank Solution in C++
#include <bits/stdc++.h>
using namespace std;
//Implement the class Box
//l,b,h are integers representing the dimensions of the box
// The class should have the following functions :
// Constructors:
// Box();
// Box(int,int,int);
// Box(Box);
// int getLength(); // Return box's length
// int getBreadth (); // Return box's breadth
// int getHeight (); //Return box's height
// long long CalculateVolume(); // Return the volume of the box
//Overload operator < as specified
//bool operator<(Box& b)
//Overload operator<<as specified
//ostream& operator<<(ostream& out, Box& B)
class Box
{
long long int l, b, h;
public:
Box()
{
l = 0, b = 0, h = 0;
}
Box(int length, int breadth, int height)
{
l = length;
b = breadth;
h = height;
}
Box(Box & B)
{
l = B.l;
b = B.b;
h = B.h;
}
int getLength() // Return box's length
{
return (l);
}
int getBreadth() // Return box's breadth
{
return (b);
}
int getHeight() //Return box's height
{
return (h);
}
long long CalculateVolume()
{
return (long long)(l *b *h);
}
bool operator < (const Box &c1)
{
if ((l < c1.l) || ((b < c1.b) && (l == c1.l)) || ((h < c1.h) && (b == c1.b) && (l == c1.l)))
{
return true;
}
else
{
return false;
}
}
friend ostream &operator<<(ostream &os, const Box &dt);
};
ostream &operator<<(ostream &os, const Box &dt)
{
os << dt.l << ' ' << dt.b << ' ' << dt.h;
return os;
}
The Output of Box It Hackerrank Solution
Similar to Box It!
- Classes and Objects Hackerrank Solution in C++
- Class Hackerrank Solution in C++
- Virtual Functions Hackerrank Solution in C++
- C++ Class Templates Hackerrank Solution in C++
- Operator Overloading Hackerrank Solution in C++
- Preprocessor Solution Hackerrank Solution in C++
- Multi-Level Inheritance Hackerrank Solution in C++
- Accessing Inherited Functions Hackerrank Solution in C++
- Print Pretty Hackerrank Solution in C++
- Maps STL Hackerrank Solution in C++
- Sets STL Hackerrank Solution in C++
- Lower Bound STL Hackerrank Solution in C++
0 Comments: