diff --git a/src/sysc/kernel/sc_object.cpp b/src/sysc/kernel/sc_object.cpp index b1c19a0..81e8bd7 100644 --- a/src/sysc/kernel/sc_object.cpp +++ b/src/sysc/kernel/sc_object.cpp @@ -240,6 +240,11 @@ sc_object::sc_object() : m_parent(0) sc_object_init( sc_gen_unique_name("object") ); } +sc_object::sc_object( const sc_object& that ) : m_parent(0) +{ + sc_object_init( sc_gen_unique_name( that.basename() ) ); +} + static bool object_name_illegal_char(char ch) { diff --git a/src/sysc/kernel/sc_object.h b/src/sysc/kernel/sc_object.h index 7614ddf..1d7c13d 100644 --- a/src/sysc/kernel/sc_object.h +++ b/src/sysc/kernel/sc_object.h @@ -134,6 +134,10 @@ protected: sc_object(); sc_object(const char* nm); + + sc_object( const sc_object& ); + sc_object& operator=( const sc_object& ); + virtual ~sc_object(); private: @@ -152,13 +156,19 @@ private: std::vector m_no_children; // get_child_objects() default value. }; +inline +sc_object& +sc_object::operator=( sc_object const & ) +{ + // deliberately do nothing + return *this; +} // ---------------------------------------------------------------------------- extern const char SC_HIERARCHY_CHAR; extern bool sc_enable_name_checking; - inline sc_object* sc_get_parent( const sc_object* obj_p ) {