※ ChatGPTを利用し、要約された質問です(原文:std::wstringの継承)
std::wstringの継承による文字列代入処理の実装方法
このQ&Aのポイント
VisualC++2008ExpressEditionで文字や数字を簡単に扱えるクラスを作成しようとしています。
クラスmultiStringは、std::wstringを継承しています。
しかし、wchar_tをクラスに代入する処理の実装でエラーや例外が発生しています。継承した場合はどのように実装すればいいでしょうか?
#include<iostream>
#include<string>
#include <stdlib.h>
#include <locale.h>
#include <boost/lexical_cast.hpp>
using boost::lexical_cast;
using namespace std;
VisualC++2008ExpressEditionで文字や数字を簡単に扱えるクラスを今作ろうとしていて以下のように作ってみました。
class multiString:public std::wstring{
public:
multiString(const wchar_t *ws){
/* multiString class自体に代入 */
}
};
しかし、このwchar_tをクラスに代入する処理として、
multiString(const wchar_t *s)std::wstring(s);
とすると、「error C2082: 仮パラメータ 's' が再定義されました。」となりますし、
multiString(const wchar_t *s)*this=s;
とすると、例外が発生してしまします。
wstringだったら、簡単に代入処理として出来るのですが、継承した場合はどの様に実装すればいいのでしょうか?
宜しくお願いします。
お礼
なるほど、確かに、 multiString(const wchar_t *cs){std::wstring::operator =(cs);} という風に、コンストラクタを書いておくとうまくいきました。 どうも有り難うございました。