I need to compress a string. Can make an assumption that each character in the string doesn`t appear more than 255 times. I need return the compressed string and its length.
Last 2 years I worked with C# and forgot C++. I will be glad to hear your comments about code , algorithm and c++ programming practices

```
// StringCompressor.h
class StringCompressor
{
public:
    StringCompressor();
    ~StringCompressor();
    unsigned long Compress(string str, string* strCompressedPtr);
    string DeCompress(string strCompressed);
private:
    string m_StrCompressed;
    static const char c_MaxLen;
};
// StringCompressor.cpp
#include "StringCompressor.h"
const char StringCompressor::c_MaxLen = 255;

StringCompressor::StringCompressor()
{
}

StringCompressor::~StringCompressor()
{
}

unsigned long StringCompressor::Compress(string str, string* strCompressedPtr)
{
    if (str.empty())
    {
        return 0;
    }

    char currentChar = str[0];
    char count = 1;
    for (string::iterator it = str.begin() + 1; it != str.end(); ++it)
    {
        if (*it == currentChar)
        {
            count++;
            if (count == c_MaxLen)
            {
                return -1;
            }
        }
        else
        {
            m_StrCompressed+=currentChar;
            m_StrCompressed+=count;
            currentChar = *it;
            count = 1;
        }
    }
    m_StrCompressed += currentChar;
    m_StrCompressed += count;
    *strCompressedPtr = m_StrCompressed;
    return m_StrCompressed.length();
}

string StringCompressor::DeCompress(string strCompressed)
{
    string res;
    if (strCompressed.length() % 2 != 0)
    {
        return res;
    }
    for (string::iterator it = strCompressed.begin(); it != strCompressed.end(); it+=2)
    {
        char dup = *(it + 1);
        res += string(dup, *it);
    }
    return res;
}

```