Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
398 views
in Technique[技术] by (71.8m points)

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

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?

question from:https://stackoverflow.com/questions/17738439/value-and-size-of-an-uninitialized-stdstring-variable-in-c

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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 :

E?ects: 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 unspeci?ed value                                            |
+-----------------------------------------------------------------------------+

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...