在实现类的toString()
函数时,我应该实现unicode和ascii版本吗?
class MyClass
{
public:
string toString()
{
return "foo";
}
// Should the unicode version be implemented aswell?
wstring toString()
{
return L("foo");
}
};
// Does this suffice?
#ifndef UNICODE
typedef string tstring;
#else
typedef wstring tstring;
#endif
class MyClass
{
public:
tstring toString()
{
return "foo";
}
};
还有一个函数重载转换为int?
class MyClass
{
public:
// ???
int operator>>(MyClass& obj)
{
return myInt;
}
private:
int myInt;
};
答案 0 :(得分:3)
显然这个问题是关于Windows编程的,虽然这并没有反映在(当前正在写这篇文章)标签上。
对于Windows,您应该使用wchar_t
类型而不必担心与早期Windows版本保持兼容,而(1)甚至无法使用现代Visual C ++生成可执行文件。
就是这样。
(1)如果可以生成Windows 9x可执行文件,那么支持旧Windows的方法就不会使用过时的T
内容或ANSI文本直接,但从2000年开始使用Microsoft的Layer for Unicode,现在已经过去了15年;这是非常古老的帽子。