Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Lebensdauer von Klassenvariablen

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 ] > 2 <
010
02.09.2003, 16:34 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



Zitat:
0xdeadbeef postete
Wenn meine Meinung dazu jemanden interessiert - so wie ich das sehe, sollte man es vermeiden, malloc, new und new[] zu vermeiden. Es ist eine häufige Quelle für Heisenbugs, und in der Regel lässt es sich auch anders lösen.

Wie jetzt? Man soll vermeiden, malloc, new, new[] zu vermeiden?
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
02.09.2003, 16:42 Uhr
0xdeadbeef
Gott
(Operator)



zu benutzen, natürlich. Das hab ich jetzt davon, dass ich so oft rummäkele, wenn jemand "Standard" als "Standart" schreibt...
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
02.09.2003, 16:58 Uhr
virtual
Sexiest Bit alive
(Operator)


Bitte nicht ganz ernstnehmen (ist aber legales C++):


C++:
#include <cstdlib>
#include <iostream>
#include <new>

class MyClass
{
public:
    MyClass(int x) { std::cout<<"ctor:"<<x<<std::endl; }
    ~MyClass() { std::cout<<"dtor"<<std::endl; }
};

int main()
{
    // Speicher für instanz belegen
    void* px = malloc(sizeof(MyClass));
    // Belegt keinen Speicher (placement new)
    MyClass* x = new(px) MyClass(4711);
    // Rufe dtos auf
    x->~MyClass();
    // Gebe Speicher frei
    free(px);
}


In verklausulierter Form wird sowas sogar in der STL gemacht (in den Allocatoren). Für normalsterbliche Applikationen gibt es aber keinen Grund für solchen Unsinn wie oben. Ich zeigs nur, damit man weiß, wie man die Leser des eigenen Source zum Wahnsinn treiben kann.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
02.09.2003, 17:56 Uhr
0xdeadbeef
Gott
(Operator)



--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
02.09.2003, 17:57 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
02.09.2003, 18:56 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hmm verdammt 1e Minute
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
02.09.2003, 19:21 Uhr
0xdeadbeef
Gott
(Operator)


Noch ein Klassiker aus der Reihe "How to torment your compiler":

C++:
#include <iostream>
#include <iomanip>

template <int i> struct fib { static const long double val; };
template <int i> const long double fib<i>::val = fib<i-1>::val + fib<i-2>::val;
const long double fib<0>::val = 0UL;
const long double fib<1>::val = 1UL;

template <int i> struct loop { static void run(); };
template <int i> void loop<i>::run() {
  loop<i-1>::run();
  std::cout << std::setw( 2) <<     i       << ":"
            << std::setw(21) << fib<i>::val << std::endl;
}
void loop<-1>::run() { }

int main() {
  std::cout << std::fixed
            << std::setprecision(0);
  loop<93>::run();
}


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

Dieser Post wurde am 02.09.2003 um 19:40 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
03.09.2003, 07:53 Uhr
~unwissender
Gast


hä?
übel, übel
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
03.09.2003, 08:59 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


nettes "gewurschtel" 0xdeadbeef
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
03.09.2003, 10:08 Uhr
0xdeadbeef
Gott
(Operator)


Vor allem, vertipp dich da mal, und freu dich über die paar hundert Fehlermeldungen, die du kriegst...

@unwissender: Ich definiere in diesen paar Zeilen Code genau 189 Klassen. Schick, was?
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 03.09.2003 um 10:09 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ 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: