Hi All,

I am new to D community. I have some problems with TimeOfDay struct.

I have defined a class:
========================================================
  class Test
  {
    TimeOfDay* getTime() {
      return a_valid_timeofday_pointer;
    }
    void setTime(TimeOfDay* value) {
      setValueAsTime(*value);
    }
    void setValueAsTime(TimeOfDay value) {
      Cout(TimeToChar(value)).newline;
    }
    /* the rest implementation of this class ... */
  }
========================================================

I try to test if setTime() works properly.

If I call
  Cout(TimeToChar(*TestObj.getTime())).newline;
It works. The console will show "10:00:00" for example.

If I call
  TestObj.setTime(TestObj.getTime());
It does not work. The console will show "33140305:48698544:485947594" for example.

If I change the setTime() function to
  void setTime(TimeOfDay* value) {
    Cout(TimeToChar(*value)).newline;
  }
or
  void setTime(TimeOfDay* value) {
    TimeOfDay copy = *value;
    setValueAsTime(copy);
  }
It works.

What's wrong with my code? (BTW: I do not want to change TimeOfDay* to TimeOfDay, otherwise null cannot be passed in.)

Thanks in advance.
--
Xu, Qian (stanleyxu)
 http://stanleyxu2005.blogspot.com

Reply via email to