Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

12.03.2012, 14:09

Variable Funktionsparameterdateitypen

Hey Community,
ich hab mal eine Frage die sich auf die Parameter einer Funktion bezieht.
Ich möchte eine Funktion für Unit-Tests erstellen um somit andere Funktionen auf ihre Richtigkeit zu überprüfen.
Da ich nicht für jeden Dateityp eine extra Funktion schreiben will bräuchte ich jetzt variable Funktionsparameterdateitypen:
Ich mein das ungefähr so:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
bool Pruefe(ergebnisrichtig,ergebnispruefen)
{
   if(ergebnisrichtig==ergebnispruefen)
  {
    return true;
  }
  else
 {
    return false;
 }
}


Wie könnte man das am besten lösen?

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

2

12.03.2012, 14:26

Welche Programmiersprache?

In C# so:

C#-Quelltext

1
2
3
4
bool Prüfe(object Ergebnis, object Lösung) 
{
    return Ergebnis.Equal(Lösung);
}

Oder generisch:

C#-Quelltext

1
2
3
4
bool Prüfe<T>(T Ergebnis, T Lösung) //where T : IEquatable<T> oder IEqualityComparer<T>
{
    return Ergebnis.Equal(Lösung);
}


Die Funktion ist aber (wie dir hoffentlich bewusst ist) megamässig überflüssig.
Diese "if" Abfrage ist schon sinnlos. (Siehe oben)

Wenn es C++ sein soll, ist "Templates" das Stichwort.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

3

12.03.2012, 14:27

Für "Variable Funktionsparameterdateitypen" nimmt man Templates... Sollte sich in jedem guten Nachschlagewerk finden lassen. ;)

Ein Vorschlag. Auch wenn ich keine Ahnung hab was du vor hast^^

C-/C++-Quelltext

1
2
3
4
5
template <typename T>
bool Pruefe(T ergebnisrichtig, T ergebnispruefen)
{
   return ergebnisrichtig==ergebnispruefen;
}
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

4

12.03.2012, 14:30

Ich glaub er meint eher sowas: http://en.wikipedia.org/wiki/Variadic_templates
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Werbeanzeige