Abhänggkeitsanalyse
-
Hey Leute,
ich habe die Aufgabe bekommen, eine Abhängigkeitsanalyse von Parametern zu programmieren. Wörtlich heißt es da: "In dieser Übung soll eine Klasse jsp implementiert werden, die zusätzlich zu den Funktionswerten, deren
Abhängigkeiten in Bezug auf die Funktionsparameter ermittelt. Die Abhängigkeiten sollen mit Hilfe
von Mengen bestimmt werden. Dabei kann allen Funktionsparametern ein eindeutiger Index manuell
zugewiesen werden. Sollte eine Operation mit einem Objekt dieser Klasse durchgeführt werden, muss
zusätzlich zur Berechnung des Wertes auch die Abhängigkeitsmenge propagiert werden [..] Ein Objekt der Klasse jsp besteht aus dem Funktionswert vom Typen double und der Menge, die kennzeichnet,
von welchen Parametern dieses Objekt abhängig ist. Die Menge soll den Typen set aus der
Standardbibliothek verwenden und die Indizes als Integer abspeichern. Beide Attribute sollen private
gespeichert werden."
Ich verstehe nicht ganz, was von mir erwartet wird. Hat jemand eventuell den Durchblick ?
Mein Ansatz bisher für die Klasse jsp:#ifndef _JSP_HPP_
#define _JSP_HPP_
#include<iostream>
#include<cmath>
#include<cstdlib>
using namespace std;template <class J>
class jsp {
double initSet (int p) {
set<int> si;}
public:
friend ostream& operator<<(/* */);
};ostream& operator<<(/*ostream &s, const jsp& d*/) {
}
#endif[code="cpp"]
-
Nein. Klassen haben keine Funktionswerte.
-
manni66 schrieb:
Nein. Klassen haben keine Funktionswerte.
Aber in der von der Uni vorgegebenen main () wird eine Fkt initSet() aufgerufen.
-
Mir ist auch nicht ganz klar, was von dir erwartet wird.
Sollst du eine Parameter Analyse von beliebigen c++ Funktionen machen? Wenn ja, kennst du wenigstens die Parameter Typen / Deren Anzahl. Wenn nicht ist wahrscheinlich “variadic templates“ das Stichwort nach dem du suchen solltest.
Oder handelt es sich doch eher un eine mathematische Funktion, die nur von Zahlentypen abhängt und eine Zahl zurück gibt?
Da der Rückgabewert immer double ist würde ich auf zweites tippem.
Zu deinem Code Ausschnitt:
Wann eine Template Klasse, wenn du mit den Typen nichts machst?
Wenn
initSet()
aus der
main()
aufgerufen werden soll, muss die Funktion public sein und soll wahrscheinlich keinen Rückgabewert haben.
Deinset<int>index
soll private sein und nicht nur in der Fkt
initset()
definiert sein.
Das Ergebnis, welches private gespeichert werden soll, fehlt.
Etwas allgemeiner würde ich mir
using namespace std;
nicht angewöhnen, damit du in größeren Projekten zum einen nicht in Namenskonflikte gerätst und du später direkt beim ersten Lesen weißt Etikett die benutzten Funktionen kommen.