Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Allgemeines (OffTopic) » Windows in C++???

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 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] > 8 < [ 9 ] [ 10 ] [ 11 ] [ 12 ]
070
16.05.2003, 13:27 Uhr
virtual
Sexiest Bit alive
(Operator)


An dieser Stelle wundert es mich, daß ich mir meine SmartPointer Klasse in C++ selbst schreiben mußte, weil sie der Standard nicht hergibt . Wenn man in C++ konsequent mit Smartpointern arbeitet, hat man die gleichen vorteile, wie in Java, das hätten die bei der ISO ruhig übernehmen können, finde ich.
--
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
071
16.05.2003, 13:55 Uhr
typecast
aka loddab
(Operator)


Tatsache MouseWheel-Unterstützung in java.awt.event.MouseWheelEvent. Ich sollt mal was an meiner Suchtechnik verändert!
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
072
16.05.2003, 14:25 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

@SmartPointer: Meinst Du die auto_ptr-Klasse?


C++:
    #include<memory>
    using namespace std;

    struct X {
        int m;
        // ..
    };

    void f()
    {
        auto_ptr<X> p(new X);
        X* q = new X;

        p->m++;
        q->m++;
        // ...

        delete q;
    }



--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
073
16.05.2003, 14:35 Uhr
virtual
Sexiest Bit alive
(Operator)


Nee, gefääääährlich, weil Autoptr hat eine andere Semantik:

C++:
// Smart Pointer Beispiel:
void f()
{
smart_ptr<std::string> a = new std::string("Hallo");
smart_ptr<std::string> b = a;
// a und b Zeigen aufs gleiche Object
....
} // Am Ende werden beide Abgeräumt


Aber bei auto_ptr:

C++:
// Auto Pointer Beispiel:
void f()
{
std::auto_ptr<std::string> a = new std::string("Hallo");
std::auto_ptr<std::string> b = a;
// a ist Destruiiert, weil a nach der Zuweisung nirgendwohin zeigt; b hat den String, den ursprünglich a hatte
....
} /

Daher kann man auto_ptr im Unterschied zu SmartPtr nicht in Containern verwenden. auto_ptr sind dafür gedacht, mittels new angelegte Objekte nach verlassen des umgebenden Blocks automatisch zu destruieren; smart_ptr dienen dazu, Refrerenzen auf gleiche Objekte zu realisieren.
Oder anders ausgedrückt:
smart_ptr shared das Ownershiip vom gesharten Objekt. Werden alle referenzierenden SmartPointer gelöscht, so macht der letzte das Licht aus (delete auf das Objekt)
auto_ptr hat ein strikt ownership, dh der auto_ptr, dem das Objekt zuletzt zugewiesen wurde, macht das Licht aus, die anderen dürfen nicht mehr drauf zugreifen.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 16.05.2003 um 14:41 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
074
16.05.2003, 14:48 Uhr
~Heiko
Gast


@virtual
Hab ich das eben richtig verstanden?
Ich muss kein delete mehr aufrufen, das macht der von selbst?
Ist dies das "smarte" an dem pointer oder was kann der noch so tolles?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
075
16.05.2003, 15:00 Uhr
virtual
Sexiest Bit alive
(Operator)


@Heiko:

C++:
void f()
{
   std::auto_ptr<std::string> str = new std::string("Hallo");

   std::cout<<str->c_str()<<std::endl;
   std::cout<<(*str)<<std::endl;
   ...
}


Wäre absolut okay, es würde auch kein Speicherloch entstehen (trotz des "fehlenden" deletes auf str), weil auto_ptr den String automatisch abräumt, wenn f verlassen wird. Allerdings gilt wie gesagt, daß man auto_ptr Instanzen nicht in Container verwenden darf, weil auto_ptr das Konzept des Strict-Ownerships hat, dh der Autoptr, dem der Pointer zuletzt zugewiesen wurde, ist alleiniger Eigenttümer. Da in Containern aber ganz gerne mal was hin+herkopiert wird, kann es da zu Problemen kommen. Der Standard verbietet ausdrücklich die Verwendung von auto_ptr in Containern.
--
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
076
16.05.2003, 15:03 Uhr
~Heiko
Gast


Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
077
16.05.2003, 19:25 Uhr
Pablo
Supertux
(Operator)


Na
ich kann nicht mehr von Java "schlecht" reden, wenn es so gute Java Verteidiger gibt, ich muss zugeben, sehr gute Argumente (Lob an auch allen), aber es reicht nicht, um mich zu überzeugen. Wie es schon andere gesagt haben, es ist eine Sache des Geschmacks, und Java ist leider nicht ein Sprache, die ich mag. Ich hab gar nichts gegen Objekten und gegen OOP, aber ich bin der Meinung, dass man nur Objekte erzeugen muss, wenn es wirklich notwendig ist, und nicht, weil ich mich gezwungen fühle, sie zu erzeugen, nur weil der Compiler Ärger macht, wenn ich eine globale Variable deklariere.

Zur Frage wegen der Pointers: Ich habe nichts gegen Pointers, ich benutze gerne Pointers, wenn ich mit C/C++ arbeite, aber es gibt viele Datentypen, die ich nicht als Pointers deklarieren muss. Aber in Java sind keine Pointers nur die eingebundenen Datentypen (wie int oder long) und alle andere Objekte sind doch Pointers. Das ist wie gesagt Geschmackssache, und ich mag so wenige Pointers zu haben, wie möglich (der andere Grund warum, ist weil ich mich viel mit funktionellen Sprache beschäftige, vor allem Scheme).
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
078
16.05.2003, 20:27 Uhr
~erpelqueen
Gast


Hallo.... ich versteh nur Bahnhof, aber is egal.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
079
16.05.2003, 20:39 Uhr
Hans
Library Walker
(Operator)


@erpelqueen:

Zitat:
Hallo.... ich versteh nur Bahnhof, aber is egal.


Hi Königin der Enteriche,

tröste Dich, das geht mir im Moment fast genau so.
Das liegt ganz einfach daran, das ich mich noch nicht so intensiv mit der OO (Objekt Orientierung) von C++ und mit Java noch gar nicht näher befasst habe.

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
Seiten: [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] > 8 < [ 9 ] [ 10 ] [ 11 ] [ 12 ]     [ Allgemeines (OffTopic) ]  


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: