added a pure virtual destructor to abstract Register class

Change-Id: I885b36372877b64ce02fcc679f1fd477d06c54ba
Signed-off-by: Zane Shelley <zshelle@us.ibm.com>
diff --git a/src/register/hei_register.hpp b/src/register/hei_register.hpp
index c352d92..3e2fb8d 100755
--- a/src/register/hei_register.hpp
+++ b/src/register/hei_register.hpp
@@ -1,6 +1,5 @@
 #pragma once
 
-#include <stdio.h>
 #include <hei_includes.hpp>
 #include <util/hei_bit_string.hpp>
 
@@ -8,7 +7,7 @@
 {
 
 /**
-@brief Description:  The Register class.
+@brief An abstract class for register objects.
 
 Purpose:  Register is an abstract base class for real and virtual registers.
 A few examples of these registers are; HardwareRegister, ConstantRegister,
@@ -30,22 +29,8 @@
 {
   public:
 
-    /**
-    @brief Default constructor
-    */
-    Register() = default;
-
-    /**
-    @brief Delete copy, assignment, and move operators.  Deleting
-           copy causes the compiler to delete move.
-    */
-    Register(const Register&) = delete;
-    Register& operator=(const Register&) = delete;
-
-    /**
-    @brief Default destructor
-    */
-    virtual ~Register() = default;
+    /** @brief Pure virtual destructor. */
+    virtual ~Register() = 0;
 
     /**
     @brief      Provides access to the BitString that manages
@@ -56,4 +41,7 @@
 
 };
 
+// Pure virtual destructor must be defined.
+inline Register::~Register() {}
+
 }//end namespace libhei