C2662 Error

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • dushkin@012.net.il

    #1

    C2662 Error

    Hi,

    This is a member function I wrote:
    bool MyClass::operat or==(const MyClass &a_suaDateTi me) const
    {
    return (m_oleDateTime == a_suaDateTime.D ateTime()); //m_oleDateTime
    an MFC class
    }

    I get this error message:
    error C2662: 'DateTime' : cannot convert 'this' pointer from 'const
    class CSuaDateTime' to 'class CSuaDateTime &'
    Conversion loses qualifiers

    Why???
    Thanks!
  • Victor Bazarov

    #2
    Re: C2662 Error

    dushkin@012.net .il wrote:
    [color=blue]
    > Hi,
    >
    > This is a member function I wrote:
    > bool MyClass::operat or==(const MyClass &a_suaDateTi me) const
    > {
    > return (m_oleDateTime == a_suaDateTime.D ateTime()); //m_oleDateTime
    > an MFC class
    > }
    >
    > I get this error message:
    > error C2662: 'DateTime' : cannot convert 'this' pointer from 'const
    > class CSuaDateTime' to 'class CSuaDateTime &'
    > Conversion loses qualifiers
    >
    > Why???[/color]

    Apparently, 'DateTime' is a non-const function. Don't call it, just
    compare the values of 'm_oleDateTime' members:

    return m_oleDateTime == a_suaDateTime.m _oleDateTime;

    V

    Comment

    • red floyd

      #3
      Re: C2662 Error

      dushkin@012.net .il wrote:[color=blue]
      > Hi,
      >
      > This is a member function I wrote:
      > bool MyClass::operat or==(const MyClass &a_suaDateTi me) const
      > {
      > return (m_oleDateTime == a_suaDateTime.D ateTime()); //m_oleDateTime
      > an MFC class
      > }
      >
      > I get this error message:
      > error C2662: 'DateTime' : cannot convert 'this' pointer from 'const
      > class CSuaDateTime' to 'class CSuaDateTime &'
      > Conversion loses qualifiers
      >
      > Why???
      > Thanks![/color]

      Can't be sure of the definition of your class, but my guess is that

      MyClass::DateTi me() is not defined as a const method.

      Comment

      • dushkin@012.net.il

        #4
        Re: C2662 Error

        Hi Victor and Red!

        You were both right! I forgot to set DateTime() as const method!

        Thanks a lot!

        Comment

        Working...