Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Klassenprogrammierung - Wie viel ist Sinnvoll?

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
27.02.2013, 10:42 Uhr
Denis2102



Hallo allerseits,
ich möchte gerne für das 4. Semester meines Mathestudiums vorbeugen, und mir einige Routinen schreiben, die ich immer wieder benötige und nie ordentlich abgespeichert habe. Hierzu beschäftige ich mich momentan mit dem erstellen einer Matrix-Klasse, die weit über normale Arrays hinaus gehen soll. Bisher umfasst das ganze:

Anlegen von Matrizen
Beliebiges hin und her konvertieren von vollbesetzten Matrizen, Diagonal-, Tridiagonal-, und Hessenbergmatrizen

Noch dazu sollen natürlich Operationen wie Matrixmultiplikationen in beliebigen Formatkombinationen kommen.

Jetzt meine Frage:

Die Matrix-Klasse die ich angelegt habe umfasst nun schon an die 25 Variablen (einige ints, doubles, double *, double **) und diverse Funktionen. Um Platz zu sparen setze ich nicht gebrauchte Pointer natürlich sofort auf NULL. Trotzdem scheint mir das ein wenig überladen.
Ist es besser nun für jeden Matrixtyp (Diagonal,...) eine eigene Klasse zu schreiben? Ich habe leider überhaupt keine Ahnung wie viele Hilfsvariablen für 'ne Klasse noch im normalen Bereich liegen.

Falls jedes Format seine eigene Klasse bekommt, ist es dann möglich die Klasse "Matrix" einfach nur mit 'nem Pointer auf die jeweilige andere Klasse auszustatten? Kann ich denn auf Instanzen einer Klasse einfach mit Pointern zugreifen?

Vielen Dank für eure Hilfe
Denis
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.02.2013, 14:44 Uhr
Hans
Library Walker
(Operator)


Hi,

wieviele Variablen sinnvoll sind oder nicht, kann ich Dir auch nicht sagen, das hängt immer auch vom Algorithmus ab.
Und ich weis nicht, ob es dir wirklich hilft, aber es gab da mal ein Buch zum Thema Matrizenrechnung mit dem Titel: "Angewandte Matrizenrechnung. 40 BASIC- Programme, 12 Anwendungen" von Dietmar Herrmann (ISBN: 3528043245). Das ist allerdings schon 1991 erschienen, dürfte also inzwischen etwas veraltet sein. Aber vielleicht hilft es Dir ja weiter, wenn Du die Implementierungen darin mit denen von Dir vergleichst.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
04.03.2013, 13:43 Uhr
ao

(Operator)



Zitat:
Beliebiges hin und her konvertieren von vollbesetzten Matrizen, Diagonal-, Tridiagonal-, und Hessenbergmatrizen

Was meinst du damit? Was wird wohin konvertiert?


Zitat:
Die Matrix-Klasse die ich angelegt habe umfasst nun schon an die 25 Variablen (einige ints, doubles, double *, double **) und diverse Funktionen. .... Trotzdem scheint mir das ein wenig überladen.

Könnte schon sein. Besonders dann, wenn einige dieser Variablen / Funktionen nur bei speziellen Matrix-Typen eine sinnvolle Bedeutung haben. Da könnte es helfen, von einem allgemeinen "Matrix"-Typ die spezielleren Typen abzuleiten und die Member-Funktionen virtuell zu überschreiben.

Um das genauer einzuschätzen, müsste man mal die Klassendefinition sehen.


Zitat:
Ich habe leider überhaupt keine Ahnung wie viele Hilfsvariablen für 'ne Klasse noch im normalen Bereich liegen.

Ein Gesetz gibts da nicht. Wohl aber die Regel, dass du, wenn du den Überblick verlierst, mal das Design als Ganzes überprüfen solltest.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
04.03.2013, 20:25 Uhr
0xdeadbeef
Gott
(Operator)


Ich stelle anheim, dass du nicht der erste bist, der Matrix-Operationen in C++ umgesetzt hat, also machst du dir da wahrscheinlich nen Haufen Arbeit für nichts. Richtig schön bequem benutzbar ist beispielsweise Eigen.
--
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: