diff --git a/src/protocols/Print/ITA2String.cpp b/src/protocols/Print/ITA2String.cpp index 3999b169..6c67faa5 100644 --- a/src/protocols/Print/ITA2String.cpp +++ b/src/protocols/Print/ITA2String.cpp @@ -20,6 +20,25 @@ ITA2String::ITA2String(const char* str) { ita2Len = 0; } +ITA2String::ITA2String(const ITA2String& ita2) { + this->asciiLen = ita2.asciiLen; + this->ita2Len = ita2.ita2Len; + #if !RADIOLIB_STATIC_ONLY + this->strAscii = new char[asciiLen + 1]; + #endif + strcpy(this->strAscii, ita2.strAscii); +} + +ITA2String& ITA2String::operator=(const ITA2String& ita2) { + this->asciiLen = ita2.asciiLen; + this->ita2Len = ita2.ita2Len; + #if !RADIOLIB_STATIC_ONLY + this->strAscii = new char[asciiLen + 1]; + #endif + strcpy(this->strAscii, ita2.strAscii); + return(*this); +} + ITA2String::~ITA2String() { #if !RADIOLIB_STATIC_ONLY delete[] strAscii; diff --git a/src/protocols/Print/ITA2String.h b/src/protocols/Print/ITA2String.h index 05b2e54a..70e7b4b0 100644 --- a/src/protocols/Print/ITA2String.h +++ b/src/protocols/Print/ITA2String.h @@ -35,6 +35,18 @@ class ITA2String { */ explicit ITA2String(const char* str); + /*! + \brief Copy constructor. + \param ita2 ITA2String instance to copy. + */ + ITA2String(const ITA2String& ita2); + + /*! + \brief Overload for assignment operator. + \param ita2 rvalue ITA2String. + */ + ITA2String& operator=(const ITA2String& ita2); + /*! \brief Default destructor. */