basic_string
cppreference basic_string
std::basic_string<CharT,Traits,Allocator>::basic_string
使用const char *
来构造
原文的(5)
描述了使用const char *
来构造,相关问题如下:
C++ : Exception occurred in script: basic_string::_S_construct NULL not valid
C++报错解决:what(): basic_string::_S_construct null not valid
下面是解决该问题的一个简单的封装:
std::string pchar_to_string(const char * pchar)
{
if (pchar)
{
return std::string(pchar);
}
else
{
return "";
}
}
Implementation
libstdc++ basic_string.h
basic_string的operator的实现
operator+= modify 对应的object,所以将它们作为member method;
operator+ 需要构造一个新的object,所以没有将它作为member method;
无论是否是member method,它们都是basic_string
的interface,关于此,参见gotw What's In a Class? - The Interface Principle;