[C++] Call by const. Ref en Visual C++

Pagina: 1
Acties:

  • Nexopheus
  • Registratie: Juni 2001
  • Laatst online: 28-01 13:50
Ik weet dan Visual C++ niet geheel ANSI C++ is, maar ik heb nu een probleempje wat ik niet helemaal snap.

Ik heb een klasse Date hierbinnen heb ik een methode compareTo. Hierbij wil ik een parameter dusdanig gebruiken dat call by constant reference wordt gebruikt.
De methode ziet er dus als volgt uit:
code:
1
2
3
4
5
6
7
int Date::compareTo(const Date& aDate)
{
  int d = aDate.day();
  int m = aDate.month();
  int y = aDate.year();
  //hier verschil berekenen.
}

Als ik deze code compileer krijg ik de volgende foutmelding:
code:
1
2
3
4
5
6
7
8
9
error C2662: 'day' : cannot convert 'this' pointer from 'const class Date' to 'class Date &'
      Conversion loses qualifiers
error C2662: 'month' : cannot convert 'this' pointer from 'const class Date' to 'class Date &'
      Conversion loses qualifiers
error C2662: 'year' : cannot convert 'this' pointer from 'const class Date' to 'class Date &'
      Conversion loses qualifiers
Error executing cl.exe.

CppOef.exe - 3 error(s), 0 warning(s)

Kijk ik ergens overheen of is dit gewoon 1 van de onderwerpen die Visual C++ niet ondersteund

Wat niet kan is nog nooit gebeurd


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 06-09 22:39
De day(), month() en year() members moeten ook hier ook const zijn volgens de compiler.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Nexopheus
  • Registratie: Juni 2001
  • Laatst online: 28-01 13:50
aha, dus
code:
1
2
int Date::day() const
{/*impl*/}

Wat niet kan is nog nooit gebeurd