我现在有一个非常奇怪的问题。
class Message
{
Field time;
void SetTimeStamp()
{
time.dataTimeValue = &boost::posix_time::microsec_clock::universal_time();
}
void SetOtherFields()
{
}
};
class Field
{
boost::posix::ptime* dateTimeValue;
};
int main()
{
Message myMessage;
myMessage.SetTimeStamp();
myMessage.SetOtherFields();
}
当我打电话时myMessage.SetTimeStamp()
,我可以正确设置时间戳,我可以看到的地址dateTimeValue
和值是有意义的。但是在那之后,我调用myMessage.SetOtherFields()
,dateTimeValue
指针仍然指向同一个内存,这很好,但是那个内存中的值变成了一个 carzy 数字。我不知道发生了什么。