Was ist ein Objekt?



  • Tachyon schrieb:

    Bashar schrieb:

    Klingt danach, ob ein "object" im Sinne des C++-Standards dasselbe Objekt wie bei "objektorientierter Programmierung" ist.

    Woraus ziehst Du diese Erkenntnis?

    Was für eine Erkenntnis? Ich hatte nach einer Klarstellung der Frage gefragt.



  • Bashar schrieb:

    Tachyon schrieb:

    Bashar schrieb:

    Klingt danach, ob ein "object" im Sinne des C++-Standards dasselbe Objekt wie bei "objektorientierter Programmierung" ist.

    Woraus ziehst Du diese Erkenntnis?

    Was für eine Erkenntnis? Ich hatte nach einer Klarstellung der Frage gefragt.

    Der zitierte Satz ist aber eine Aussage und keine Frage.



  • Richtig. Der Satz sagt aus, dass ich vermute, dass die Frage ist, ob ein Objekt im C++-Sinne und ein Objekt im OOP-Sinne dasselbe sind.

    Können wir jetzt bitte mit dem Kindergarten aufhören?



  • Bashar schrieb:

    Können wir jetzt bitte mit dem Kindergarten aufhören?

    Naja, immerhin wirst Du Deinem Namen gerecht.



  • Bashar schrieb:

    Was war die ursprüngliche Frage?

    Es gibt keine ursprüngliche Frage. Ich habe mit einer kleinen Randbemerkung in dem anderen Thread offensichtlich eine Diskussion zum Objekt-Begriff losgetreten (über die Hälfte der Posts in dem Thread).

    Stein des Anstoßes war:
    A: "Entweder speichert dein Vektor Objekte oder Zeiger"
    B: "Wenn der Vektor Zeiger speichert, sind das auch Objekte, Zeiger-Objekte."

    Für A gilt Objekt = Instanz einer Klasse
    Für B gilt Objekt = region of storage (nach C++ Definition)

    Ich wollte das nur in diesen Thread umlenken und meinen Standpunkt nochmal darlegen. Mehr nicht. Kurzfassung: Ich sehe keinen guten Grund, warum ich den Objekt-Begriff auf Instanzen von Klassen einschränken soll, wenn C++ eine andere Terminologie vorgibt und versucht die Grenzen zwischen UDTs und nicht-UDTs zu verwischen (UDT = user defined type). Zumindest ist dadurch klar geworden, dass auch C++ Programmierer sich unter "Objekt" nicht immer das gleiche vorstellen. Mehr kann dieser Thread wohl auch nicht leisten.

    Gruß,
    SP



  • Der ursprüngliche Streitpunkt war unter anderem meine Aussage:

    "Objekte sind Instanzen von Klassen". Ich betrachte int, float, char, etc. nicht als Objekt und stehe damit angeblich im Widerspruch zum Standard. 😉 Ich böser! 😃



  • Wenn ich noch ein bissel krümelkacken darf:

    It0101 schrieb:

    Der ursprüngliche Streitpunkt war unter anderem meine Aussage:

    "Objekte sind Instanzen von Klassen". Ich betrachte int, float, char, etc. nicht als Objekt

    Ich auch nicht. Das sind Objekttypen 🙂
    ("Types describe objects, references, or functions", aus §3.9)



  • Sebastian Pizer schrieb:

    Kurzfassung: Ich sehe keinen guten Grund, warum ich den Objekt-Begriff auf Instanzen von Klassen einschränken soll, wenn C++ eine andere Terminologie vorgibt...

    Ich verstehe deine Auffassung, werde aber dennoch den Begriff so verwenden wie es im Sprachgebrauch meiner bisherigen Berufslaufbahn verwendet wurden ist (=>Instanz).

    Sebastian Pizer schrieb:

    Zumindest ist dadurch klar geworden, dass auch C++ Programmierer sich unter "Objekt" nicht immer das gleiche vorstellen.

    Dem stimme ich zu, nur glaube ich wenn man im Satz "Objekt oder Zeiger" schreibt, jeder soweit mitdenken kann, das man Zeiger nicht als Objekt ansieht. Unabhängig von irgendeinen C++ Standard.



  • asc schrieb:

    Ich verstehe deine Auffassung, werde aber dennoch den Begriff so verwenden wie es im Sprachgebrauch meiner bisherigen Berufslaufbahn verwendet wurden ist (=>Instanz).

    Leuchtet mir nicht ein.

    int i = 10; //typ ist int, instanz heißt i und hat einen zustand
    //es lässt sich eine reihe von operationen ausführen
    class T{....};
    T obj; //typ ist T, instanz heißt obj und hat einen zustand.
    //es lässt sich eine reihe von operationen ausführen
    
    //Wieso eine Unterscheidung?
    


  • Tachyon schrieb:

    Leuchtet mir nicht ein.

    int i = 10; //typ ist int, instanz heißt i und hat einen zustand
    //es lässt sich eine reihe von operationen ausführen
    class T{....};
    T obj; //typ ist T, instanz heißt obj und hat einen zustand.
    //es lässt sich eine reihe von operationen ausführen
    

    Tachyon schrieb:

    //Wieso eine Unterscheidung?

    weil sonst eine sprache, in der es int i=10; gibt, aber nicht class T{....} obj; auch als ojektorienttiert gelten müsste. *fg*
    🙂



  • Tachyon schrieb:

    //Wieso eine Unterscheidung?
    

    Weil damit eine Instanz einer Klasse gemeint war, und auch so in meinen bisherigen Firmen im Sprachgebrauch verwendet wird (Die sich übrigens in 90% mit C++ beschäftigt haben).



  • asc schrieb:

    Ich verstehe deine Auffassung, werde aber dennoch den Begriff so verwenden wie es im Sprachgebrauch meiner bisherigen Berufslaufbahn verwendet wurden ist (=>Instanz).

    Du Trotzköpchen.
    Shlaer/Mellor verwenden AFAIR "Objekt" auch als "Klasse". Damit haben wir schon drei Sprachwelten innerhalb der Programmiererei, die sich in der Bedeutung von "Objekt" unterscheiden. Vielleicht sollte man die Vokabel gemäß der Welt anwenden, in der man gerade ist.


Anmelden zum Antworten