class Address
{
private:
	string Name, Street;
	int HouseNum ;
public:
	Address()//** конструктор без параметрів
	{
		//ініціалізація полів класу :
          HouseNum = 0;
		  Name = "Standart_name";
		  Street = "Standart_street";
		cout<<"Constructor - Without parameters  "<<this<<endl;
	}
	Address(Address& tmp) //** конструктор копіювання
	{
		Name = tmp.Name;
		Street = tmp.Street;
		HouseNum = tmp.HouseNum;
		cout<<"Constructor - Copy  "<<endl;
	}
	Address(string _Name,string _Street,int _HouseNumber)//** конструктор з параметрами
	{
		Name     = _Name;
		Street   = _Street;
		HouseNum = _HouseNumber;
		cout<<"Constructor - With parameters  "<<this<<endl;
	}
	void my_fun()
	{
		cout<<"Call the method of Class Address"<<endl;
	}
	void set_information(string _Name,string _Street,int _HouseNumber)//** ініціалізує закриті поля
	{
		Name     = _Name;
		Street   = _Street;
		HouseNum = _HouseNumber;
	}
	void show_information()
	{
		cout<<"Address :::"<<endl;
		 cout<<"    Name        : "<< Name <<endl;
		 cout<<"    Street      : "<< Street <<endl;
		 cout<<"    House Number: "<< HouseNum <<endl;
	}


	~Address()//** деструктор
	{
		cout<<"~~~Destructor  "<<this<<endl;
	}

};