代码之家  ›  专栏  ›  技术社区  ›  Jean Valjean

在调用/连接LPCWSTR后定义wstring

  •  0
  • Jean Valjean  · 技术社区  · 9 年前

    我尝试在case语句中定义wstring。尝试访问case语句之外的变量返回范围之外。

    所以我现在尝试在switch()之外声明一个wstring,并在switch中定义它。 但我不知道如何区分这些事件。

        wstring w1;
    
        switch (suit)
            {
            case 0:
                std::w1(stringOne);
                break;
            case 1:
                std::w1(stringTwo);
                break;
            case 2:
                std::w1(stringThr);
                break;
            case 3:
                std::w1(stringFou);
                break;
            }
    

    最后,我尝试连接(……并听……)三个LPCWSTR,我使用 std::wstring 要做到这一点。我愿意使用其他方法来完成这项任务。

    1 回复  |  直到 9 年前
        1
  •  2
  •   user4992621 user4992621    9 年前

    跳转到case不允许跳过构造函数/析构函数调用。在开关外部和开关之前创建wstring应该可以。你可以这样做:

    std::wstring wstr;
    

    然后是开关,在每个相关的情况下,分配给wstr。或者,在每种情况下打开一个新的块范围,在该范围内构造一个新类是合法的。在代码中,这看起来像:

    case 0:
    {
       std::wstring w;
       // do whatever you want to do with string w...
       // ..
       // then let it 'hit' it's destructor 
    }
    break;