2009年3月21日星期六

C++ 在构建函数里调用另一个构建函数的问题

EvaUser::EvaUser(const unsigned int id, const char *md5Password)
{
/*函数体*/

}

EvaUser::EvaUser(const unsigned int id, const std::string &password)
//: QObject()
{
EvaUser( id, (char *)password.c_str() );
}
发现创建一个对象后会自动调用其析构函数EvaUser::~EvaUser();检查了很久,才发现问题出现在第二个构建函数上。原因可能是
EvaUser( id, (char *)password.c_str() );返回的是一个临时对象。,当EvaUser::EvaUser(const unsigned int id, const std::string &password)结束后,这个临时对象会被删除的吧。这应该是个很白痴的问题。呵呵~

没有评论:

发表评论