Ich habe eine Klasse die eine Bruchzahl speichert (naja bis nun noch nichts tolles^^).
Ich hab in der Klasse eine konstante öffentliche Methode bool const isGreater(rational const& a). Wenn ich nun von meiner Vergleichsoperatorfunktion bool const operator > (rational const& a, rational const& b) auf die Methode isGreater von der Instanz a zugreife spuckt mir der Compiler folgende Warnung aus:
[C++ Warning] classRational.cpp(242): W8037 Non-const function rational::isGreater(const rational &) called for const object
Hier der Code:
Ich hab in der Klasse eine konstante öffentliche Methode bool const isGreater(rational const& a). Wenn ich nun von meiner Vergleichsoperatorfunktion bool const operator > (rational const& a, rational const& b) auf die Methode isGreater von der Instanz a zugreife spuckt mir der Compiler folgende Warnung aus:
[C++ Warning] classRational.cpp(242): W8037 Non-const function rational::isGreater(const rational &) called for const object
Hier der Code:
Code:
class rational
{
public:
// [...]
// Vergleiche
bool const isGreater(const rational& a);
// [...]
private:
// [...]
};
bool const rational::isGreater(const rational& a)
{
return (double)this->zaehler/this->nenner > (double)a.zaehler/a.nenner;
}
Code:
bool const operator > (rational const& a, rational const& b)
{
return a.isGreater(b);
}