C2char str;
str += "nullpo"; // oops!

lpm_StrBuff が NULL の場合を考慮したコードが必要ですね。
430行目と476行目の memcpy の行で
if (lpm_StrBuff) memcpy( ...
としてはどうでしょう。

ほぼどうでもいい話ですが,482行目で,もし this == &ob2 である場合
this->lpm_StrBuff == ob2.lpm_StrBuff でもあります。
「清潔なコード」を心がけたいなら,memmove を使う事も
考えておいた方がよいでしょう。

なお,将来 std::string::c_str() のようなメソッドをつけた場合,
str += str.c_str() + 1;
を正常に行えるために,あまり小さくない改造が必要になるかも
知れません。覚悟しておくべきです。