Problem
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 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 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 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
- B.b < B.b and A.l == B.l
- A.h < B.h and 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.
Constraints :
0 <= l,b,h <= 10^5Two boxes being compared using the < operator will not have all three dimensions equal.
Box it! – Hacker Rank Solution
Code:
#include<bits/stdc++.h>
using namespace std;
//Implement the class Box
class Box
{
private:
//l,b,h are integers representing the dimensions of the box
int length, breadth, height;
public:
// Constructors:
// Box();
Box()
{
length = 0;
breadth = 0;
height = 0;
}
// Box(int,int,int);
Box(int l, int b, int h)
{
length = l;
breadth = b;
height = h;
}
// Box(Box);
Box(const Box &B)
{
length = B.length;
breadth = B.breadth;
height = B.height;
}
// int getLength(); // Return box's length
int getLength()
{
return length;
}
// int getBreadth (); // Return box's breadth
int getBreadth()
{
return breadth;
}
// int getHeight (); //Return box's height
int getHeight()
{
return height;
}
// long long CalculateVolume(); // Return the volume of the box
long long CalculateVolume()
{
return (long long)(breadth) * length * height;
}
//Overload operator < as specified
//bool operator<(Box& b)
bool operator<(Box &B)
{
if (length < B.length)
{
return true;
}
else if (length == B.length)
{
if (breadth < B.breadth)
{
return true;
}
else if (breadth == B.breadth)
{
if (height < B.height)
{
return true;
}
}
}
return false;
}
};
//Overload operator << as specified
//ostream& operator<<(ostream& out, Box& B)
ostream &operator<<(ostream &out, Box &B)
{
out << B.getLength() << " " << B.getBreadth() << " " << B.getHeight();
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()
{
check2();
}
Disclaimer: The above Problem (Box it! ) is generated by Hackerrank but the Solution is Provided by MultiplexCoder. This tutorial is only for Educational and Learning purposes. Tags: hackerrank c++ solutions | Functions Discussions | C++ | HackerRank | student analysis C++ hackerrank solution | challenges C++ hackerrank solution | hackerrank C++ basic certification solutions | hackerrank-C++ certification solutions | basic data types hackerrank solution in c++ | variable sized arrays hackerrank solution in c++ | inherited code hackerrank solution in c++ | hackerrank c++ solutions github | hackerrank data structures solutions in c++ | hackerrank c++ class solution | pointer hackerrank solution in c++ | box it hackerrank solution in c++
ConversionConversion EmoticonEmoticon