Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Klassenabhängigkeit

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
09.06.2004, 11:07 Uhr
~Anfänger
Gast


Halllo!

Ich hab die Aufgabe gekriegt, in einem größeren Programm mit mehreren Headern und Quellcodedateien, die Abhängigkeit der Klassen voneinander zu bestimmen. Tja, und irgendwie sitz ich jetzt da wie der Ochs vorm Berg. Die Klassen sind nicht voneinander vererbt oder so. Wie kann ich denn feststellen, wie da welche von welcher abhängig ist?

Danke.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.06.2004, 12:07 Uhr
ao

(Operator)


Wenn ClassA ein Member vom Typ ClassB hat, hängt A von B ab.
Ebenso, wenn es ein Member vom Typ Zeiger auf B oder Referenz auf B gibt.
Ebenso, wenn A Memberfunktionen hat, die B-Objekte, B-Pointer oder B-Referenzen nehmen oder zurückgeben.
Ableitungs-Abhängigkeiten sind nicht da, das sagtest du schon.
Wenn A eine Template-Klasse ist, in der B als Template-Parameter vorkommt.

Hab ich welche vergessen?

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.06.2004, 12:18 Uhr
stephanw
localhorst



Zitat:
ao postete
Wenn ClassA ein Member vom Typ ClassB hat, hängt A von B ab.
Ebenso, wenn es ein Member vom Typ Zeiger auf B oder Referenz auf B gibt.
Ebenso, wenn A Memberfunktionen hat, die B-Objekte, B-Pointer oder B-Referenzen nehmen oder zurückgeben.
Ableitungs-Abhängigkeiten sind nicht da, das sagtest du schon.
Wenn A eine Template-Klasse ist, in der B als Template-Parameter vorkommt.

Hab ich welche vergessen?

ao


Kommt auf die Definition von "abhängig" an. Ein spitzfindiger Kontrolleur würde vielleicht auch noch folgende Abhängigkeiten erwarten:

+ Wenn eine Methode von A auch nur temporäre Variablen vom Typ B benutzt (nicht auf die Signatur beschränkt).
+ Wenn A statische Methoden von B benutzt.
+ Wenn A innere Klasse von B ist.
+ Wenn A friend von B ist.

Und noch weiter gesteckt könnte man eine "Abhänigkeit" auch erkennen, wenn eine Klasse/Methode/Operator/Funktion C sowohl A, also auch B benutzt und deren Dienste irgendwie verknüpft.
--
Reden ist Schweigen und Silber ist Gold.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.06.2004, 12:18 Uhr
RHBaum



Ich weiss nicht, in welchen Zusammenhang hier "abhaengig" gesehen wird ...
Fuer compile-Abhaengigkeit stimmts ned ganz.

Zitat:

Ebenso, wenn es ein Member vom Typ Zeiger auf B oder Referenz auf B gibt.


Muss nicht abhaengig sein ! wenn die referenz/ der zeiger in der Klasse nie benutzt, also ein member/memberfunktion davon aufgerufen wird, oder ne Instanz erzeugt wird, muss die klasse ned abhaengig sein. Also ueberall wo nen forward langt, ists keine richtige abhaengigkeit :p

Ich vermute du sollst die abhaengigkeiten bestimmen, um die compilezeit zu optimieren oder das Projekt besser zu modularisieren ???

Ciao ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.06.2004, 12:43 Uhr
~Anfänger
Gast


Danke schon mal. Noch eine ganz doofe Frage, wenn ich im Quellcode ein #include eines Headers von einer anderen Datei finde, kann ich dann davon ausgehen, dass die voneinander abhängig sind?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
09.06.2004, 12:52 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


man kanns vermuten, aber von ausgehen nicht...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
09.06.2004, 17:08 Uhr
RHBaum



was Windalf meinte:

Es ist sicher deine Aufgabe, herauszufinden, ob die Abhaengigkeit, die durch das #include erreicht wurde, wirklich notwendig ist ...

Ciao ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
09.06.2004, 17:20 Uhr
0xdeadbeef
Gott
(Operator)



C++:
#include <bla.h>


heißt nichts anderes als "Such im Include-Pfad nach einer Datei namens bla.h und schreib deren Inhalt hier hin."
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
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: