Jump to content

Overloaded operators: Difference between revisions

Added C++ implementation
(Added C++ implementation)
Line 59:
10 + 11 = 21 = 21? true
10 "+" true = 11
</pre>
 
=={{header|C++}}==
Operator overloading is one of the classic features of C++, but truth be told, I am writing such code after 20 years.......
 
And yes, I know subtracting cuboids can give negative volumes. It's theoretically possible (remember volume or triple integrals ? ).
<lang cpp>
//Aamrun, 4th October 2021
 
#include <iostream>
using namespace std;
 
class Cuboid {
private:
double length;
double breadth;
double height;
public:
double getVolume(void) {
return length * breadth * height;
}
void setLength( double l ) {
length = l;
}
void setBreadth( double b ) {
breadth = b;
}
void setHeight( double h ) {
height = h;
}
 
Cuboid operator +(const Cuboid& c) {
Cuboid biggerCuboid;
biggerCuboid.length = this->length + c.length;
biggerCuboid.breadth = this->breadth + c.breadth;
biggerCuboid.height = this->height + c.height;
return biggerCuboid;
}
Cuboid operator -(const Cuboid& c) {
Cuboid smallerCuboid;
smallerCuboid.length = this->length - c.length;
smallerCuboid.breadth = this->breadth - c.breadth;
smallerCuboid.height = this->height - c.height;
return smallerCuboid;
}
};
 
int main() {
Cuboid c1;
Cuboid c2;
Cuboid c3;
double volume = 0.0;
 
c1.setLength(6.0);
c1.setBreadth(7.0);
c1.setHeight(5.0);
c2.setLength(12.0);
c2.setBreadth(13.0);
c2.setHeight(10.0);
volume = c1.getVolume();
std::cout << "Volume of 1st cuboid : " << volume <<endl;
volume = c2.getVolume();
std::cout << "Volume of 2nd cuboid : " << volume <<endl;
 
//Adding the two cuboids
c3 = c1 + c2;
 
volume = c3.getVolume();
std::cout << "Volume of 3rd cuboid after adding : " << volume <<endl;
//Subtracting the two cuboids
c3 = c1 - c2;
 
volume = c3.getVolume();
std::cout << "Volume of 3rd cuboid after subtracting : " << volume <<endl;
 
return 0;
}
</lang>
{{out}}
<pre>
Volume of 1st cuboid : 210
Volume of 2nd cuboid : 1560
Volume of 3rd cuboid after adding : 5400
Volume of 3rd cuboid after subtracting : -180
</pre>
 
Line 72 ⟶ 164:
16
</pre>
 
=={{header|jq}}==
{{works with|jq}}
503

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.