operator overloading std operator c++ header file code example
Example 1: c++ overload operator
#include <iostream>
using namespace std;
class Box {
public:
double getVolume(void) {
return length * breadth * height;
}
void setLength( double len ) {
length = len;
}
void setBreadth( double bre ) {
breadth = bre;
}
void setHeight( double hei ) {
height = hei;
}
Box operator+(const Box& b) {
Box box;
box.length = this->length + b.length;
box.breadth = this->breadth + b.breadth;
box.height = this->height + b.height;
return box;
}
private:
double length;
double breadth;
double height;
};
int main() {
Box Box1;
Box Box2;
Box Box3;
double volume = 0.0;
Box1.setLength(6.0);
Box1.setBreadth(7.0);
Box1.setHeight(5.0);
Box2.setLength(12.0);
Box2.setBreadth(13.0);
Box2.setHeight(10.0);
volume = Box1.getVolume();
cout << "Volume of Box1 : " << volume <<endl;
volume = Box2.getVolume();
cout << "Volume of Box2 : " << volume <<endl;
Box3 = Box1 + Box2;
volume = Box3.getVolume();
cout << "Volume of Box3 : " << volume <<endl;
return 0;
}
Example 2: c++ overload operator
#include <iostream>
class ExampleClass {
public:
ExampleClass() {}
ExampleClass(int ex) {
example_ = 0;
}
int& example() { return example_; }
const int& example() const { return example_; }
ExampleClass operator+ (const ExampleClass& second_object_of_class) {
ExampleClass object_of_class;
object_of_class.example() = this -> example() + second_object_of_class.example();
return object_of_class;
}
private:
int example_;
};
int main() {
ExampleClass c1, c2;
c1.example() = 1;
c2.example() = 2;
ExampleClass c3 = c1 + c2;
std::cout << c3.example();
}