Value and size of an uninitialized std::string variable in c++

前端 未结 5 1601
既然无缘
既然无缘 2020-12-09 07:44

If a string is defined like this

std::string name;

What will be the value of the uninitialized string \"name\" and what size it would be?

5条回答
  •  情书的邮戳
    2020-12-09 08:14

    Because it is not initialized, it is the default constructor that is called. Then :

    empty string constructor (default constructor) :

    Constructs an empty string, with a length of zero characters.

    Take a look : http://www.cplusplus.com/reference/string/string/string/

    EDIT : As stated in C++11, §21.4.2/1 :

    Effects: Constructs an object of class basic_string. The postconditions of this function are indicated in Table 63.

    -> Table 63
    +-----------------------------------------------------------------------------+
    | data()     | a non-null pointer that is copyable and can have 0 added to it |
    +------------+----------------------------------------------------------------+
    | size()     | 0                                                              |
    +------------+----------------------------------------------------------------+
    | capacity() | an unspecified value                                            |
    +-----------------------------------------------------------------------------+
    

提交回复
热议问题