我的程序需要大量的ANSI UNICODE对话,所以我有了创建多类型对象的想法,该对象将比附加函数和许多新/删除操作更容易转换所有内容。伪代码:

class CWchar // char based
{
public:
    public static implicit operator wchar_t*(CWchar cw)
    {
        // converting cw.data to wchar_t
        // up to U+FFFF conversion needed
    }
    public static implicit operator char*(CWchar cw)
    {
        return cw.data;
    }
    CWchar& CWchar::operator=(const char* c)
    {
        data = *c;
        return *this;
    }
    CWchar& CWchar::operator=(const wchar_t* c)
    {
        //conversion to char* ...
        return *this;
    }

    // add some smart pointers, garbage collector, and leave delete

private:
    char* data;
}


这真的值得编码吗,还是我应该考虑其他解决方案?也许已经完成了项目?还是我错了,这个主意不好?谢谢

最佳答案

这听起来很像codecvt。这使您可以在Char *和多字节wchar_t *流之间进行转换。这是标准库的一部分。 Stroustrup撰写的《 C ++编程语言》第三版对此做了很好的附录。

关于c++ - C++多类型对象的想法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10174262/

10-11 23:03