我已延长的std :: string履行编写自定义功能,建设成所谓的CustomString String类的我的需要
我有定义的构造函数:
class CustomString : public std::string {
public:
explicit CustomString(void);
explicit CustomString(const std::string& str);
explicit CustomString(const CustomString& customString);
//assignment operator
CustomString& operator=(const CustomString& customString);
... };
在第三个构造函数(拷贝构造函数)和赋值操作符,它的定义是:
CustomString::CustomString(const CustomString& customString):
std::string(static_cast<std::string>(customString))
{}
CustomString& CustomString::operator=(const CustomString& customString){
this->assign(static_cast<std::string>(customString));
return *this;
}
首先,因为这是一个“明确的”; 这意味着显式的转换是需要分配给另一个CustomString对象; 它在抱怨分配。
CustomString s = CustomString("test");
我不知道哪儿是铸造明确需要。
如果拷贝构造函数不明确的,但我想知道和实施明确的定义,而不是“猜测正确投”代码工作正常的。