C++で新しい文字列クラスをつくろう
■ このスレッドは過去ログ倉庫に格納されています
0257233
NGNG>>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 ヌルポ。
ってなってました。
俺なんか間違えたのかな??_| ̄|○
■ このスレッドは過去ログ倉庫に格納されています