Algorithm
Problem Name:
In this HackerRank Functions in C++ programming problem solution,
Design a class named Box whose dimensions are integers and private to the class. The dimensions are labelled: length l,breadth b, and height h.
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 Box (Box B) should set l, b and h to B's l, b and h, respectively.
Apart from the above, the class should have
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
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.
Code Examples
#1 Code Example with C++ Programming
Code -
C++ Programming
#include<bits/stdc++.h>
using namespace std;
class Box{
private:
int l, b, h;
public:
Box(int a = 0, int bb = 0, int c = 0){
l = a;
b = bb;
h = c;
}
int getLength(){
return l;
}
int getBreadth(){
return b;
}
int getHeight(){
return h;
}
long long CalculateVolume(){
return (long long)l * b * h;
}
bool operator < (Box& B){ //Overload operator < as specified
if((l < B.l) || (b < B.b && l == B.l) || (l == B.l && b == B.b && h < B.h))
return true;
else
return false;
}
friend ostream& operator<<(ostream& out, Box& A){
out << A.l << " " << A.b << " " << A.h;
return out;
}
};
void check2()
{
int n;
cin >> n;
Box temp;
for(int i = 0; i < n; i++){
int type;
cin >> type;
if(type == 1){
cout << temp << endl;
}
if(type == 2){
int l,b,h;
cin >> l >> b >> h;
Box NewBox(l,b,h);
temp = NewBox;
cout << temp << endl;
}
if(type == 3){
int l,b,h;
cin >> l >> b >> h;
Box NewBox(l,b,h);
if(NewBox < temp){
cout << "Lesser\n";
}
else{
cout << "Greater\n";
}
}
if(type == 4){
cout << temp.CalculateVolume() << endl;
}
if(type == 5){
Box NewBox(temp);
cout << NewBox << endl;
}
}
}
int main(void)
{
check2(>;
}
Copy The Code &
Try With Live Editor