我有一個名爲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'
我真的很困惑,我用Google搜索「運算符重載」,但所有的結果都有我用重載操作方式相同。那麼爲什麼這不起作用呢?
爲什麼不使用'std :: wstring'? – cdhowie
'Fstring test = L「Hello World」;'在構建新的'Fstring'時調用構造函數而不是'operator ='。 –
你也可能想實現一個構造函數。 –