I am learing for exam and need to know if this declaration of operator+ is correct, it works as I wish but I am not sure how it works.
#include <iostream>
using namespace std;
class name {
private:
    string word;
public:
    name(const string& a1) :word(a1) {}
    friend name& operator+(const string& la, name& ra);
    friend ostream& operator<<(ostream& out, const name& r);
};
ostream& operator<<(ostream& out, const name& r) {
    return out<<r.word;
}
name& operator+(const string& la, name& ra) {
    ra.word = la + ra.word;
    return ra;
}
int main() {
    name obj("overflow");
    obj = "stack" + obj;
    cout << obj << endl;
}
I was just editing my operator+ until it compiles and somehow this one comiples.
Aucun commentaire:
Enregistrer un commentaire