Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 'std::wstring'是一种具有引用计数的类吗?_C++ - Fatal编程技术网

C++ 'std::wstring'是一种具有引用计数的类吗?

C++ 'std::wstring'是一种具有引用计数的类吗?,c++,C++,几个简单的问题: std::wstring是一种引用计数类似于std::vector的类吗?在中,我可以将其作为类成员而不指定其大小吗 当我这样做时:std::wstring string2=string1(其中string1也是一个wstring并且有一个值),它是复制实际数据还是只复制引用类 我以前知道这个,但我忘了 std::wstring是一种类似std::vector的引用类吗?在中,我可以将其作为类成员而不指定其大小吗 是的,它是一个“引用类”,您可以将其作为类成员而不指定其大小 当

几个简单的问题:

  • std::wstring
    是一种引用计数类似于
    std::vector
    的类吗?在中,我可以将其作为类成员而不指定其大小吗
  • 当我这样做时:
    std::wstring string2=string1
    (其中string1也是一个
    wstring
    并且有一个值),它是复制实际数据还是只复制引用类
  • 我以前知道这个,但我忘了

    std::wstring是一种类似std::vector的引用类吗?在中,我可以将其作为类成员而不指定其大小吗

    是的,它是一个“引用类”,您可以将其作为类成员而不指定其大小

    当我这样做时:std::wstring string2=string1;(string1也是一个wstring并且有一个值),它是复制实际数据还是只复制引用类

    这将复制数据,因为您正在调用wstring类中定义的赋值运算符

    如果要更改“引用类”,请考虑使用指针。

  • 我不太清楚“参考类”是什么意思,但您可以将其作为类成员,而无需指定大小:

    class MyClass
    {
    private:
        std::wstring _str;
    }
    
  • 它将复制实际数据,您将拥有两个具有相同内容的不同字符串对象

  • 值得注意的是,
    std::string
    std::wstring
    std::u16string
    std::u32string
    只是
    std::basic_string
    的typedef,所以它们的工作方式都是相同的。

    请定义“引用类”。