Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » header oder klasse?

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
21.04.2005, 22:42 Uhr
McDude



Hallo,

Ich bin jetzt in C++ eingestiegen und habe mir neulich eine Mathematik-Header-Datei mit einigen Funktionen geschrieben.
Ein Kollege meinte, dass es aber besser wäre, wenn ich sie als Klassenmethoden programmiere.
Leider sehe ich hier keine wirkliche Verbesserung, zwar geht der objekt-orientierte Ansatz verloren, aber die Header-Datei kann auch weiterverwendet werden.

Was ist nun besser, Klassenmethoden oder Funktionen in einer Header-Datei?
Es ist für mich als Anfänger wichtig, dass ich beim nächsten Mal gleich weiß, was der beste Weg ist.

Danke im Voraus und
Gruß McDude
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.04.2005, 23:47 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


also die funktionen einfach nur in eine Klasse zu packen halte ich nicht für besonders sinnvoll...
in einem Namensraum zu packen schon da du dann auch namen verwenden kannst die es schon gibt aber einfach alle mathefunkionen in eine klasse ballern ich glaub so ne aussage kommt von nem Javafreund...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.04.2005, 11:48 Uhr
0xdeadbeef
Gott
(Operator)


Es kommt auf die Funktionalität an. Ein namespace wär auf jeden Fall sinnvoll, und wenn du einfach nur Funktionen zur Verfügung stellen willst, dann nimmste halt - nun ja, Funktionen. Man muss und sollte nicht auf Teufel komm raus Klassen benutzen.

Anders dagegen sieht es aus, wenn du parametrisierbare Funktionen haben willst, dafür benutzt man dann Funktor-Klassen. Zum Beispiel...hm...

accumulator.hh

C++:
namespace foo {
  class accumulator {
  public:
    accumulator(int x = 0);
    int operator()(int x);

  private:
    int value_;
  };
}


accumulator.cc

C++:
#include "accumulator.hh"

namespace foo {
  accumulator::accumulator(int x) : value_(i) { }

  int accumulator::operator()(int x) { return value_ += x; }
}


main.cc

C++:
#include "accumulator.hh"

#include <iostream>

int main() {
  foo::accumulator acc(100);

  for(int i = 0; i < 10; ++i) {
    std::cout << acc(i) << std::endl;
  }
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 22.04.2005 um 11:49 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
22.04.2005, 23:51 Uhr
McDude



Vielen Dank für die sehr hilfreichen Antworten!!!

Gruß McDude
 
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: