I had a class name address:
    #ifndef __ADRESS
#define __ADRESS
#include <iostream>
using namespace std;
class Adress
{
private:
    std::string street;
    int number;
    std::string city;
public:
    Adress(std::string name = "Hertzel", int number = 1, std::string city = "Tel Aviv"); //C'tor
    Adress(const Adress& other); //cpy c'tor
    Adress(Adress&& other);//Move c'tor
                           //Get methods
    const string& getStreet() const;
    int getNumber() const;
    const string& getCity() const;
    //Set methods
    bool setStreet(std::string streetName);
    bool setNumber(int num);
    bool setCity(std::string cityName);
    const Adress& operator=(const Adress& other);
    friend ostream& operator<<(ostream& os, const Adress& adress);
};
#endif // !__ADRESS
The street and city were originally char* and now I changed it to strings. But now I have a weird issue. While using char* I managed to use operator<< function inorder to print the content of address, now after switching to string instead char* when I try printing an address the program terminates.
This is the implementation I wrote for the function:
    ostream& operator<<(ostream& os, const Adress& adress)
{
    os << adress.street << " " << adress.number << " " << adress.city;
    return os;
}
Is anyone familiar with that problem? Thanks!
 
    