ttp://up.isp.2ch.net/up/9be58f11be48.lzh

>>256
>いい忘れていたけど249と同じ理由でTCHARもただのCHARに修正してほしい。
これも、CStringのマネw
サッソク直しました。

>これは宣言にconstを付けてvirtual int Compare( LPCSTR ob2 ) const;にすれば消えた。
とりあえず、問題無さそう(つーか GetLength() だけしか見てなかったので付け忘れた)でしたので、const付けました。

>operator+=()の戻り値の型をC2charからC2char&にしたら解決した。
クラス内のもあわせて全てC2char&型に変更した。
が、結果は同じでした。ch3 はNULLポインターを差してます。>「ch3 = ch1 + ch2;」
なんかデバッグでは「ch3 = ch1 + ch2;」の順を追うと

1.「ch1 + ch2」の C2char& operator+( const C2char &ob1, const C2char &ob2 );
が起動し、内部の C2char( ob1 ) のコピーコンストラクタ C2char( const C2char &ob2 ) が起動。
C2char( ob1 ) 変数(?)に ob1 の内容が入る。
(デバッグでみると C2char( ob1 ) 変数 ≠ ch3 です。)

2.C2char( ob1 ) 変数のクラス演算子 C2char& operator+=( const C2char &ob2 ); が起動し、
C2char( ob1 ) 変数に ch2 の内容が連結。

3.C2char( ob1 ) 変数のデストラクタが起動。全て解放。

4.ch3 ヌルポ。

ってなってました。
俺なんか間違えたのかな??_| ̄|○