TARGET: I have to copy one object into another object .
I thought of copying it without using assignment or copy contructor but it doesnt compile. SO I have use copy contructor /assignment operator.
ISSUES
.
Now I have 2 questions?
1) Do I really need copy constructor & assignment operator ? As far as I know I am not using any pointers in member variables so there is no need to use copy constructor?
Butt then my object is an pointer so may be I need it?
2) IF my  below code  is right why I am getting error shown below
can not convert from 'const Home_instance *' to 'Home_instance *'
home_data.h
struct home_data
{
    QString                           area_address_;
    QVector<QString>                   home_numbers_;
    QMap< QString, QList<QByteArray> > area_to_home_mapping;
};
Home_instance.h
class Home_instance : public QObject
{
    Q_OBJECT
public:
    Home_instance( const Home_data& data, QObject* parent_p = 0 );
    Home_instance();
    Home_instance( const Home_instance& rhs );
    Home_instance& operator=( const Home_instance& rhs );
    ~Home_instance();
// some otehr functions
private:
    Home_data data_;
}
Home_instance.cpp
//constructors
Firmware_instance::Home_instance( )
{
}
Home_instance::Home_instance( const Home_data& data, QObject* parent_p )
: QObject( parent_p ),
  data_  ( data )
{}
Home_instance::Home_instance( const Home_instance& rhs )
{
    data_.ip_address_            = rhs.data_.ip_address_;
    data_.serial_numbers_        = rhs.data_.serial_numbers_;
    data_.serial_to_slot_mapping = rhs.data_.serial_to_slot_mapping;
}
 Home_instance& Home_instance::operator=( const Home_instance& rhs )
 {
    data_.ip_address_            = rhs.data_.ip_address_;
    data_.serial_numbers_        = rhs.data_.serial_numbers_;
    data_.serial_to_slot_mapping = rhs.data_.serial_to_slot_mapping;
    return *this;
 }
Home_instance::~Home_instance()
{
   // do we actually need destructor ?
}
//  in some other Dialog window say Council.h &cpp
class Council
{
// some other variable decl
private:
Home_instance*            Home_instance_p_;
Home_data                 Home_data_p_;
}
in council.cpp
// in constructor 
{
connect( udp_p_,    SIGNAL( discovered_Home( const Home_instance* ) ), this, SLOT( new_Home( const Home_instance* ) ) );
}
// in function new_home
void Council::new_home( const Home_instance* Home_old_instance )
{
// bla bla 
Home_instance_p_  =     Home_old_instance; // error can not convert from 'const Home_instance *' to 'Home_instance *'
}
Thanks