您的位置:首页 > 其它

STL string 析构异常原因分析

2016-11-28 16:27 417 查看
使用C++string类声明str1变量,程序运行一段时间在跑到std::string str1这条语句导致崩溃,想问一下,什么情况下会产生这样的问题?


std::string str1 出现异常,直接导致程序崩溃

http://blog.csdn.net/moyumoyu/article/details/6712244

class __declspec(dllexport) smart_string
{
public:
smart_string();
~smart_string();
const char *get_data() const;
void set_data(const char *data);
void clear();
smart_string & operator += (const char *data);
private: std::string *data;
};

smart_string::smart_string()
{
data = new std::string();
}
smart_string::~smart_string()
{
if (data)
{ data->clear();
delete data;
}
}

const char * smart_string::get_data() const
{
return data->c_str();
}

void smart_string::set_data(const char *_data)
{
data->clear();
data->replace(0, data->size(), _data);
}

void smart_string::clear()
{
data->clear();
}

smart_string & smart_string::operator += (const char *_data)
{
*data += _data; return *this;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string
相关文章推荐