私はFstring
という名前のクラスを持っていますが、それにはwchar_t*
があります。文字列のC++でオーバーロード演算子
私は、次のFstring
にリテラル文字列をコピーするために書いた:
#include <iostream>
using namespace std;
class Fstring{
wchar_t *arr;
public:
Fstring& operator = (const wchar_t temp[])
{
delete [] arr;
arr=new wchar_t[wcslen(temp)];
for(int i=0;i<=wcslen(temp);i++)
arr[i]=temp[i];
return *this;
}
};
int main()
{
Fstring test=L"Hello World";
return 0;
}
をしかし、それは動作しませんでした。コンパイラは私に次のエラー与えた:私は本当に困惑している
error C2440: 'initializing' : cannot convert from 'const wchar_t [12]' to 'Fstring'
を、私は「演算子のオーバーロード」グーグルが、結果のすべては、私は演算子をオーバーロードするために使用されるのと同じ方法を持っています。では、なぜこれは機能しませんか?
単に 'std :: wstring'を使わないのはなぜですか? – cdhowie
'Fstring test = L" Hello World ";'新しい 'Fstring'を構築するときに' operator = 'ではなくコンストラクタを呼び出します。 –
コンストラクタも実装したいことがあります。 –