Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Templates - Anforderung an Typ T

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
12.01.2008, 20:18 Uhr
~ika
Gast


Nabend an alle Programmier Profis.
Ich schreibe am Montag eine C++ Prüfung und versuche gerade eine Probeklausur zu lösen und komme irgendwie nicht weiter. Hoffe einer hier hat etwas Zeit und Lust mir zu helfen. Ein Freund meinte ich liege völlig falsch, mit meinen Antworten. Bitte korrigiert oder ergänzt mich. Danke schon mal. LG Ika
Es geht um folgende Aufgabe:
Welche Anforderungen stellt das folgende Template an den Datentyp T ? Bitte beschreiben Sie diese genau mit Angabe der jeweiligen Zeile.

01: template<class T>
02: T exponential(const T& x, const T& eps, int Iter){
03: T xi(1.0), summe;
04: int i=1;
05: while (i<Iter && xi>eps) {
06: summe += xi;
07: xi = xi*(x/i);
08: i++;
09: }
10: return summe;
11: }

Meine Antwort bisher ist die:

Zeile 2. Die ersten beiden Parameter müssen vom selben Typ sein und sind Referenzen und müssen konstant sein, der dritte vom Typ int
Zeile 3. Konsturktor muss vorhanden sein mit double als Parameter
Zeile 4. Zuweisungsoperator mit int als Rückgabewert
Zeile 5. < Operator mit Typ T als Parameter und int als Rückgabewert
Zeile 6. += Opeator mit Typ T als Parameter und Rückgabetyp
Zeile 7. Operator int()
Zeile 10. Rückgabetyp muss Referenz auf T sein
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.01.2008, 21:21 Uhr
0xdeadbeef
Gott
(Operator)


Naja, Nummer 3 wäre auf die Frage eine richtige Teilantwort. Aber du sollst den Kram ja nicht zeilenweise auseinandernehmen und kommentieren, sondern erklären, welche Anforderungen an den Typ T gestellt sind, also welches Interface er erfüllen muss. Mit anderen Worten, welches Interface muss der Typ foo zur Verfügung stellen, damit

C++:
foo x, y;
exponential(x, y, 0);


kompiliert?
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.01.2008, 21:40 Uhr
~ika
Gast


schon mal vielen dank für deine Antwort.
Irgendwie hab ich das mit den Templates noch nicht ganz raus, die machen mich verückt.
So wie ich es jetzt verstanden habe müssten Folgende Anforderungen erfüllt sein:
1. Konstruktor
2. += Operator
3. Zuweisungsoperator

stimmt das? oder wieder nicht?
LG Ika
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
14.01.2008, 00:28 Uhr
xXx
Devil


HMm nicht ganz:

C++:
T xi(1.0), summe;
Default-Konstruktor(summe) und Konstruktor mit double als Parameter(xi).

C++:
xi>eps) {
operator> (xi>.

C++:
summe += xi;
summe += xi;[/cpp]operator +=

C++:
(x/i)
i integer, d.h. muss x entweder operator int() (also type-cast operator) oder operator/ für int implementiert haben.

C++:
xi = xi*(x/i);
entweder operator* oder operator int() (type-cast operator

usw. geh mal schrittweise durch ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
14.01.2008, 06:37 Uhr
~ika
Gast


Danke dir xXx, ich denke jetzt habe ich verstanden worum es geht.
Ein Kumpel wollte mir klar machen dass xi ein Vektor sein muss, dehalb war ich extrem iritiert.
Vielen dank, jetzt kann die prüfung kommen.
Gruß Ika
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: