c++ class operator overloading example
Example 1: c++ overloaded == operator
#include <iostream>
#include <string>
class Car
{
private:
std::string m_make;
std::string m_model;
public:
Car(const std::string& make, const std::string& model)
: m_make{ make }, m_model{ model }
{
}
friend bool operator== (const Car &c1, const Car &c2);
friend bool operator!= (const Car &c1, const Car &c2);
};
bool operator== (const Car &c1, const Car &c2)
{
return (c1.m_make== c2.m_make &&
c1.m_model== c2.m_model);
}
bool operator!= (const Car &c1, const Car &c2)
{
return !(c1== c2);
}
int main()
{
Car corolla{ "Toyota", "Corolla" };
Car camry{ "Toyota", "Camry" };
if (corolla == camry)
std::cout << "a Corolla and Camry are the same.\n";
if (corolla != camry)
std::cout << "a Corolla and Camry are not the same.\n";
return 0;
}
Example 2: c++ over load operator
vec2 operator - (vec2 const &other) {
return vec2(x - other.x, y - other.y);
}
Example 3: 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();
}
Example 4: what is operator overloading in c++
#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;
}