【问题标题】:C++ Multitype object ideaC++ 多类型对象思想
【发布时间】:2012-04-16 12:40:31
【问题描述】:

我的程序需要大量的 ANSIUNICODE 对话,所以我产生了创建多类型对象的想法,它比附加功能和大量新/删除更容易转换所有东西。伪代码:

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;
}

这真的值得编码还是我应该考虑另一种解决方案?也许已经完成了项目?或者也许我错了,这个想法很糟糕?谢谢

【问题讨论】:

  • 为什么需要做这么多的转换?是否可以只有一个桥接 Unicode 端和非 Unicode 端?
  • 我的应用程序是迷你 IM,它接收多字节 char*,我需要将其转换为宽 wchar_t*,例如希腊字母的格式会很好。
  • @MikeKwan 我忘了添加通知,你能多说一些关于桥的想法吗?

标签: c++ char wchar-t


【解决方案1】:

这听起来很像codecvt。这允许您在 Char* 和多字节 wchar_t* 流之间进行转换。这是标准库的一部分。 Stroustrup 编写的 The C++ Programming Language 第三版对此有一个很好的附录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    • 1970-01-01
    • 2014-03-18
    相关资源
    最近更新 更多