int, long usw durch Objekte ersetzen
-
ExtOOS schrieb:
ich würde gerne die std Datentypen wie int, long usw durch Klassen ersetzen.
Was bringt dir das? Und was willst du dann als Basis für deine Datentypen verwenden?
-
Ein knappes Jahr, warum?
Ich kann an meiner Aussage nichts falsches finden.
-
Bezweckst du damit irgendwas oder geht es dir rein um die Übung?
Falls letzteres zutrifft kann ich dir empfehlen mal auf http://www.nist.gov/dads/ die spezifikationen einiger Standartdatenstrukturen (z.B. Stack, LinkedList) anzuschauen und versuchen sie zu implementieren.
Anderenfalls wirst du uns den tieferen Sinn deiner Aktion vllt noch mal erklären müssen

*finally made the post no. 100
*
-
Ich wollte es einfach so machen, weil ich es so schöner bzw einfacher zu benutzen finde. Ich finde ein einfach schöner wenn ich z.B.
Int Integer( 45 ); Integer.Sqrt(): Int Integer2( 44 ); Integer2 * Integer.Pow( 3 );schreiben kann.
Natürlich wird es durch die Klasse langsamer sein,
aber solange ich nichts Performencekritisches mache
ist es ja nicht soo schlimm.
-
In dem Fall denke ich, dass du auf der sicheren Seite bist, solange du nicht exorbital viele Rechenvorgänge durchführen willst.
btw: kommst du zufällig von Java?
-
ExtOOS schrieb:
Ich wollte es einfach so machen, weil ich es so schöner bzw einfacher zu benutzen finde. Ich finde ein einfach schöner wenn ich z.B.
Int Integer( 45 ); Integer.Sqrt(): Int Integer2( 44 ); Integer2 * Integer.Pow( 3 );schreiben kann.
So programmiert man aber nunmal im allgemeinen nicht in C++. Du versuchst hier, C++ krampfhaft ein Paradigma aus anderen Sprachen aufzuzwängen. Das halte ich für keine gute Idee.
-
Nein, ich komme nicht von Java.
Ich war ein paar mal kurz davor auf Java umzusteigen,
aber ich mag C++ einfach lieber. Ich weiß, eine RenderEngine sollte man
sicher nicht mit solchen Klassen schreiben, aber für meine Hobbyprojekte ist es mir egal, ob das Programm 20% langsamer läuft.
-
Wenn es Dir egal ist, was an Performance dadurch flöten geht, wieso fragst Du dann überhaupt danach?
-
ExtOOS schrieb:
aber ich mag C++ einfach lieber.
Dann benutz die Sprache doch auch so, wie sie geschaffen wurde...
-
Tachyon schrieb:
Wenn es Dir egal ist, was an Performance dadurch flöten geht, wieso fragst Du dann überhaupt danach?
Mal davon abgesehen, dass bei einer sauberen Implementierung und einem optimierenden Compiler der Performanceunterschied virtuell sein könnte, d.h. der Wrapper sollte wegoptimiert werden.
-
Danke Konrad,
habe es gerade getestet. Der gcc optimiert alles weg.Vielen Dank an alle

-
ExtOOS schrieb:
Danke Konrad,
habe es gerade getestet. Der gcc optimiert alles weg.Asche auf mein Haupt …

-
mit templates könntest du da auch schön pervers abgehen. ich mein so, dass du es dir sparen kannst, jedes mal ne methode vom leder zu reißen, wenn du ne funktion für deine klassen findest. angenommen du hast ne funktion zum quadrieren, die du jetzt auch so wie die wurzel (als methode mit seiteneffekten) verwenden willst, ohne an deinen klassen rumfuhrwerken zu wollen:
#include <iostream> #include <cmath> using namespace std; template<typename T> class Number { typedef T value_type; template<typename TT> friend ostream &operator<<(ostream &, const Number<TT> &); public: Number(T value) : m_value(value) { } template<typename F> void operator()(const F &func) { m_value = func(m_value); } private: value_type m_value; }; template<typename T> ostream &operator<<(ostream &strm, const Number<T> &num) { return strm << num.m_value; } int quad(int a) { return a*a; } int main() { Number<int> x = 49; x(sqrtf); cout << x << "\n"; x(quad); cout << x << endl; }
-
@ExtOOS: Mann kann sich auch mit nem Hammer aufn Kopf hauen, das ist auch eine dumme Idee und tut weh.
Ideen haben manche Leute...
-
finde ich auch net so cool die idee.. aber jedem das seine;) :schland:
-
Ich verwende solche Wrapper-Klassen, fast ausschließlich als Member-Variablen, weil man dann nicht so schnell vergisst sie zu initialisieren. Und außerdem kann dann gleich in der Deklaration der Default-Wert mitangegeben werden (vor allem bei multiplen Konstruktoren ist es recht nützlich).
-
hustbaer schrieb:
@ExtOOS: Mann kann sich auch mit nem Hammer aufn Kopf hauen, das ist auch eine dumme Idee und tut weh.
Ideen haben manche Leute...
- Finde ich auch.Ich finde das ganze in etwa so sinnvoll, wie die bool - Klasse, die hier rumgegeistert ist.

-
@Superlexx:
Wenn du damit leben kannst dass > 90% aller Leute die jemals deinen Code lesen werden sich "WTF!?!" denken ... dann mach das ruhig weiter so.
-
Das ist doch nur ne Menge unnützer Arbeit sowas zu schreiben.
-
Der Compiler dürfte das meiste vermutlich inlinen und der Performance unterschied dürfte gering sein. (Aber vermutlich wird Dein Binary aufgebläht). Aber wenn es Dir wichtig ist, dann mess es nach!
Aber ganz ehrlich: Wozu sich die Mühe machen? Schreib lieber sinnvollen Code in der Zeit.
Oder nutz die Zeit um folgenden Artikel durchzulesen: http://www.ddj.com/cpp/184401197