frage zum kopierkonstruktor



  • ich weiß nicht so recht... ist union nicht ein überbleib-sel aus vergangenen c-zeiten 🙄
    ich kann mir vorstellen, dass der code vielleicht unübersichtlich wird. wie oft/wo wendet ihr sowas an? immer da wo ihr auf new und delete verzichten wollt?
    in meinen programm wär das auf jeden fall eine interessante alternative.

    ps: ich nehme mal aufgrund fehlender einwände an, dass meine aussage bezüglich des c-ctr. richtig war. [hopefully]



  • miller_m schrieb:

    es würde auf jedenfall einige probleme lösen bzw ein paar sachen vereinfachen.
    bsp: du bräuchtest keinen dynamischen speicher
    zum thema union siehe: http://tutorial.schornboeck.net/union.htm

    Welchen Gewinn hat man durch die union? Ein struct würde es doch auch tun. Ich hoffe, Du willst die Union nicht zum casten missbrauchen. Dein Link zeigt das z.B. im 2. Beispiel auch falsch. Nur auf das letzte zugewiesene Element der Union darf zugriffen werden (mit einer Ausnahme für POD-Structs). (9.5)



  • exigoner schrieb:

    wie oft/wo wendet ihr sowas an?

    in meinen vektor klassen in den ich zeiger auf das erste element benötige 😉

    exigoner schrieb:

    immer da wo ihr auf new und delete verzichten wollt?

    das eine hat eigentlich nicht nichts mit den anderen zu tun

    exigoner schrieb:

    in meinen programm wär das auf jeden fall eine interessante alternative.

    sehe ich genau so

    exigoner schrieb:

    ps: ich nehme mal aufgrund fehlender einwände an, dass meine aussage bezüglich des c-ctr. richtig war. [hopefully]

    deine aussage ist für mich eigentlich nichts sagend. denn es wohl klar das wenn
    du kopierst wird er aufgerufen.
    wichtig ist nur das du entscheiden musst wann du kopieren willst und wann nicht.



  • das glaub ich nicht, wie soll ich mir das array im uniun dann vorstellen, 4 zeilen lan und nur w gespeichert?



  • 7H3 N4C3R schrieb:

    Welchen Gewinn hat man durch die union?

    hauptsächlich schreibarbeit und die gewissheit das im array das selbe steht
    wie in den werten des structs. und ich kann einfach einen pointer auf das erste element zurückgeben

    7H3 N4C3R schrieb:

    Ich hoffe, Du willst die Union nicht zum casten missbrauchen.

    😕
    nein, wie kommt man auf so eine idee 😃

    7H3 N4C3R schrieb:

    Dein Link zeigt das z.B. im 2. Beispiel auch falsch. Nur auf das letzte zugewiesene Element der Union darf zugriffen werden (mit einer Ausnahme für POD-Structs). (9.5)

    was meinst du? shades beispiel 😕



  • Den Link den du gepostet hast. Siehe Standard Sektion 9.5.



  • 7H3 N4C3R schrieb:

    Den Link den du gepostet hast. Siehe Standard Sektion 9.5.

    hab kein standard da, poste mal bitte den text. was für einen sinn hätte dann lt. dme standard union?



  • "In a union, at most one of the data members can be active at any time, that is, the value of at most one of the data members can be stored in a union at any time."

    Der Zweck von Unions ist der selbe, wie er schon immer war: Speicher sparen.



  • mir ist schon halbwegs klar was du geschrieben hast, was auch gut in shades erstem bsp. behandelt wird. dh mein code bzw. shades code sind lt standard illegal



  • Japps, sollte laut Standard illegal sein (bzw. undefiniert). Weiß garnicht, wie das in C war und was man sich dabei jetzt gedacht hat. Immerhin gibt es da ein paar Schnittstellen, die sich darauf verlassen (Berkley Socket-API z.B.).

    In irgendeinem Text hat Alexandrescu auch mal geschrieben: "Unions are not for casting!".



  • was ist casten 😕



  • Die implizite oder explizite Umwandlung eines Typen in einen anderen.


Anmelden zum Antworten