Purpose of overloading operators in C++?

Posted by Geo Drawkcab on Stack Overflow See other posts from Stack Overflow or by Geo Drawkcab
Published on 2012-06-15T21:58:36Z Indexed on 2012/06/16 3:16 UTC
Read the original article Hit count: 144

Filed under:

What is the main purpose of overloading operators in C++?

In the code below, << and >> are overloaded; what is the advantage to doing so?

#include <iostream>
#include <string>

using namespace std;

class  book {
string name,gvari;
double cost;
int year;
public:
book(){};

book(string a, string b, double c, int d) { a=name;b=gvari;c=cost;d=year; }
~book() {}
double setprice(double a) { return a=cost; }
friend ostream& operator <<(ostream& , book&);
void printbook(){
    cout<<"wignis saxeli "<<name<<endl;
    cout<<"wignis avtori "<<gvari<<endl;
    cout<<"girebuleba "<<cost<<endl;
    cout<<"weli "<<year<<endl;  
}
};

ostream& operator <<(ostream& out, book& a){
out<<"wignis saxeli "<<a.name<<endl;
out<<"wignis avtori "<<a.gvari<<endl;
out<<"girebuleba "<<a.cost<<endl;
out<<"weli "<<a.year<<endl;
return out;
}

class library_card : public book {
string nomeri;
int raod;
public:
library_card(){};
library_card( string a, int b){a=nomeri;b=raod;}
~library_card() {};
void printcard(){
    cout<<"katalogis nomeri "<<nomeri<<endl;
    cout<<"gacemis raodenoba "<<raod<<endl;
}
friend ostream& operator <<(ostream& , library_card&);
};

ostream& operator <<(ostream& out, library_card& b) {
out<<"katalogis nomeri "<<b.nomeri<<endl;
out<<"gacemis raodenoba "<<b.raod<<endl;
return out;
}


int main() {
book A("robizon kruno","giorgi",15,1992);
library_card B("910CPP",123);
A.printbook();
B.printbook();
A.setprice(15);
B.printbook();

system("pause");
return 0;
}

© Stack Overflow or respective owner

Related posts about c++