[c++] class

mal ne frage an unsere c++ freaks....

habe eine klasse mit diversen variablen und ein paar funktionen drin...wenn ich nun ein array von z.b. 100*4 feldern von dieser klasse mache, sind diese funktionen logischerweise auch 100*4 mal vorhanden. da ich diese funktionen jedoch nur 1 mal benötige (bekommen übergabeparameter) sind die restlichen (100*4)-1 funktionen sozusagen überflüssig.

meine fragen nun:
- braucht so eine funktion (ca10-20 zeilen) viel speicher?
- gibt es einen grossen performanceschub wenn ich diese funktionen als normale funktionen code (also nicht in der klasse)?
 
Jede dieser Funktionen im Array ist wie Du sagtest mehrmals vorhanden, ebenso die Variablen.

- gibt es einen grossen performanceschub wenn ich diese funktionen als normale funktionen code (also nicht in der klasse)?
Kommt darauf an auf welchem Zielsystem Dein Programm läuft. Bei Computern mit weniger RAM hat es garantiert einen Geschwindigkeitsgewinn.
 
*LOL* ;)

tut mir leid, aber ihr seid auf dem holzweg. das selbe problem hatten die entwickler von c++ wohl auch. deshalb wird jede member funktion nur _einmal_ im speicher abgelegt. damit sie weiss, welches objekt gerade diese funktion aufruft, wird ihr als parameter ein zeiger auf diese klasse (this, heist er) übergeben. alle fragen beantwortet?
 
Was mr nicht ganz klar ist:

Benutzt Du die funktion EINER Klasse mehrmals ? Oder leitest Du die klasse mehrmals ab (100*4)..wenn ja gibts fuer jede Funktion imho einen eigenen stack und speicherplatz fuer die variablen wird eh verbraten..

ergo:

leitest Du die KLasse n- mal ab..hast du n funktionen mit n variablen
was bedeuten wuerde n stacks und n mal laufzeitspeicher..sofern sie "zur selben Zeit" laufen....

"- braucht so eine funktion (ca10-20 zeilen) viel speicher?"
:: hat nichts mit der zeilenanzahl zu tun

"gibt es einen grossen performanceschub wenn ich diese funktionen als normale funktionen code (also nicht in der klasse)?"
:: kommt wieder darauf an was du machst...grundsaetzlich sind "nicht outgesourcte" funktionen flotter...

wenn Du 100*4 *n variablen deklarierst verbraetst du auch den speicher pauschal...

Beschreib mal bitte genauer was du vorhast..

bye
seth

:wq!
 
das ganze geht um folgendes gerät: http://www.spirentcom.com/analysis/view.cfm?P=138

ziel ist es dieses gerät anzusprechen. vom hersteller wird eine lib für eigenentwicklung bereitgestellt.

in dieser lib hat es nun verschiedene EIGENE variabeltypen/strukturen. mein ziel ist es nun eine structur zu bauen mit dem ich die ganzen definierten streams(zu übertragende packete) speichern kann. hab zwar im vornherein keine ahnung von der anzahl dieser streams nehme aber mal einen mittelwert von 400 stück an (für ne anständige analyse).

@blueflash: wird dieser "this" zeiger automatisch übergeben????
 
also, nochmal ganz genau: wenn man eine klasse definiert, wird der code jeder member funktion _einmal_ abgelegt (auf dem stack, glaub ich). wenn ich ein objekt dieser klasse konstruiere, das dann die funktion aufruft, wird dieser funktion _automatisch_ ein zeiger namens this übergeben, dieser zeigt auf das aufrufende objekt. wenn ich eine klasse ableite, wird die funktion auch für die abgeleitete klasse gültig, sie wird nur nocheinmal geschrieben, wenn sie überladen wird.
ich hoffe damit sind alle fragen beantwortet.
 
Zurück
Oben