Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » C++ Templates Mehrdeutige Operatoren » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen C++ Templates Mehrdeutige Operatoren
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
jw95
Grünschnabel


Dabei seit: 02.03.2011
Beiträge: 1

C++ Templates Mehrdeutige Operatoren Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
Hi!
Ich lerne grade C++ und bin mittlerweile bei Templates angekommen. Ich wollte eine Klasse fraction programmieren, die Brüche speichern & verarbeiten kann.
Ich habe die Klasse fraction als Template geschrieben:
template <typename T>
class fraction
{
[...]
template <typename T2>
fraction operator *(T2 rhs) const
{
[...]
};

template <typename T2, typename T3>
friend fraction operator *(T2 lhs, fraction<T3>& rhs)
{
[...]
};
};

Das Problem liegt bei dem Operator *, den ich überladen habe. Ich kann damit einwandfrei eine Variabel, die nicht vom Typ fraction ist, und eine andere miteinander multiplizieren.
Wenn ich jedoch zwei Variabeln vom Typ fraction miteinander multiplizieren will, dann meldet der Compiler das der Operator mehrdeutig ist. Warum das so ist, ist mir klar. Aber ich weiß nicht, wie ich das verhindern / umgehen / lösen kann.

Meine Ideen:
Vielleicht etwas mit dynamic_cast, aber wie genau, weiß ich auch nicht.
Vielleicht ist auch mein Ansatz mit den Templates falsch.

Danke schon mal im Voraus für Hilfe.
02.03.2011 19:54 jw95 ist offline E-Mail an jw95 senden Beiträge von jw95 suchen Nehmen Sie jw95 in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » C++ Templates Mehrdeutige Operatoren