我有一个奇怪的问题,其中值被很好地放入构造函数,但是这个没有返回正确的对象,它只是返回一个设置错误的值的对象(我想是默认值)
看看这个屏幕:
当我调试并进入构造函数时,我确信数据是正确的。例如,这里是 UserDetails 的构造函数:
UserDetails::UserDetails( QString _maxDataRate, Request _request ){
unsigned int intMaxDataRate = _maxDataRate.toUInt();
UserDetails(intMaxDataRate, _request);
}
UserDetails::UserDetails( unsigned int _maxDataRate, Request _request ) :
maxDataRate( _maxDataRate ), request( _request ) {
this->userID = IDGenerator++;
}
我知道这一定是一个典型的 C++ 错误,比如引用问题或类似的问题,但我不记得这可能是什么。
最佳答案
您正在从构造函数内部调用构造函数,即您正在创建一个立即销毁的临时对象。
您需要执行以下操作:
UserDetails::UserDetails( QString _maxDataRate, Request _request )
: UserDetails(_maxDataRate.toUInt(), _request);
{
}
关于C++ : constructor setting wrong values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30502034/