[C/C++] Borland C++ Builder - Hilfe!

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von gater001, 16. April 2009 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 16. April 2009
    Borland C++ Builder - Hilfe!

    Hi RRler, ich schreibe in eine Woche eine Programmierarbeit(hat also noch ein bisschen Zeit).

    Ich weiß das sagen bestimmt alle Schüler aber MEIN Programmierleher ist einfach ne HOLE NUSS!!! Der soll uns programmieren beibringen und kann es selber nicht! Während er es uns beibringt geht er in seinen Freistunden zu einem anderen Lehrer in seinen Kurs und lernt es dort selber erst!.

    Okey bissi Frust abgelassen, es sieht nicht ganz so schlecht aus wie es auf den ersten Blick wirkt da ich doch schon bisschen ahnung habe (ich weiß das wirkt gleich auch nicht mehr so^^).
    Noch kurz zum Unterricht bei meinem Lehrer: Er teilt uns Blätter aus die er von einem anderem Lehrer hat (weil er selber es ja nicht drauf hat!), gibt sie uns und meint es wäre alles klar. Wenn wir Fragen stellen sollen wir auf die Blätter schauen die er uns gegeben hat, dann setzt er sich meistens an seinen Pult und "arbeitet" mit seinem Notebook, nur wenn man auf sein Desktop schaut sieht man Icons wie Need for Speed Carbon. Gut das erstmal damit ich nicht ganz so dumm darsteh xD

    1.Ok erste Frage ist aus einer Beispielarbeit (die auch nicht von ihm ist):
    -Was unterscheidet die Begriffe "Klasse" und "Objekt"?

    Ich denke sowas müsste ja eigentlich klar sein aber mein lehrer...habt ihr ja oben schon gelesen

    Gut jetzt zu den nächsten Fragen. Da wir uns nicht sehr lange (c.a. 4 Unterrichtsstunden mit Klassen beschäftigt haben muss ich hier auch nochmal nachfragen):

    Code:
    TStringList *FrageObjekt;
    meine frage:
    2.1 was ist TStringList und was ist dagegen das FrageObjekt?
    2.2 in wiefern kann man TStringList variieren?(ich meine wenn es wie ich vermute eine Klasse ist dann kann ich die doch nennen wie ich will)
    2.3 und was hat das * zu bedeuten?

    Was mir aufgefallen ist es gibt auch die Möglichkeit es ohne ein * zu machen, wenn man es mit macht muss man später noch
    Code:
    FrageObjekt= new TStringList;
    hinzufügen. könnt ihr mir das auch noch erklären?


    Dann in einem späteren Beispiel kam das hier vor:
    Code:
    class TKreis
    {
    public:
    void Zeichnen(void);
    void fuellen(void);
    };
    
    TKreis Kreis;
    
    so nun die Fragen, das was unter public: steht sind Prozeduren die ich von über all aus aufrufen kann oder? Wie haben in diesem Beispiel einen Kreis ausgegeben. Unter Zeichnen stand dann der Befehl zum Kreis zeichnen und bei fuellen haben wir ihn dann eine Farbe gegeben.

    So und hier wieder ähnliche Frage wie oben:
    -Beim TKreis kann ich es nennen wie ich will oder?
    - was habe ich mit Zeichnen und fuellen gemacht? also was bringt es mir/was habe ich damit erreicht.
    -ich weiß das ich mit
    Code:
    void TKreis::Zeichnen(void)
    der Prozedur Befehle geben kann aber wieso kann ich die Prozedur dann nur mit "Kreis.Zeichnen();" starten (Kreis hinter dem TKreis schon klar aber wieso kann ich nicht antsatt Kreis.Zeichnen(); auch TKreis.Zeichnen(); verwenden)


    So ich hoffe man behält noch den Überblick,
    BW ist dafür natürlich dabei!
    mfg gater001


    //EDIT: Leider vergessen:
    Wir arbeiten in der Schule mit dem Borland C++ Builder 4 (ich selber benutze die 5er Version zu hause, die Syntax scheint sie nicht verändert zu haben da beides unter beidem läuft)
     
  2. 16. April 2009
    AW: Borland C++ Builder - Hilfe!

    Hm ich würd dir jetzt erstmal zu ner Literatur raten die dir Objektorientierung nochmal etwas erklärt! Hier z.b. ein sehr gutes Tut, basiert zwar auf Java aber die Grundkonzepte werden vermittelt: Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle

    Kleiner Crashkurs:

    Du kennst doch von früher sicher Sandkuchenformen, oder? Die Sandkuchenform ist die Klasse, der Sandkuchen der bei rauskommt ist das Objekt. Das Objekt ist also eine Instanz einer Klasse. Also eine Materialisierung einer Schablone um es komplizierter auszudrücken Die Klasse gibt halt vor wie eine Instanz von sich aussehen soll und was diese können soll ... und das Objekt der Klasse ist halt genau diese Instanz, also unser Sandkuchen!

    [Man muss halt mit dem Begriff Objekt immer etwas vorsichtig umgehen, kann von Programmiersprache zu Programmiersprache und Anwendungsgebiet leicht variieren]

    Denke das sollte jetzt deine erste Frage zu der TStringList beantworten: Die TStringList ist die Klasse, das FrageObjekt das Objekt zur klasse mit der man dann letztendlich arbeiten kann. Das * deutet auf einen Pointer hin, also einen Zeiger auf TStringList: Pointers - C++ Tutorials

    was auch direkt zu deiner new - Frage führt: Du legst dann hier konkret das Objekt an auf welches der Pointer zeigt!

    Verwendest du das * nicht, dann legst du ne statische Variable an ... Unterschied statisch vs. dynamisch: Verweise und dynamische Objekte

    Kurz und knapp: ja! (siehe den Java-Link). Du kannst public-methoden von überall aus aufrufen, private-methoden hingegen nur direkt in der klasse selber, ein Aufruf über ein Objekt ist hier nicht möglich!

    ja, du kannst die Variable nennen wie du willst sofern du die beschränkungen der jeweiligen sprache einhältst (oftmals sind z.b. keine zahlen am beginn erlaubt, z.b. TKreis 1Kreis)! TKreis meinKreis; ... oder TKreis deinKreis; oder TKreis RRistSuper; ... alles möglich

    Zeichnen und Füllen sind Methoden der Klasse TKreis. Mit diesen kannst du das TKreis-Objekt bearbeiten, ihm halt wie ihr z.b. ne andre Farbe geben!

    Ich versteh die Frage

    Nicht so ganz ... das Zeichnen(void) bedeutet dass die Methode Zeichnen keinen Eingangsparameter nimmt, das heißt mehr oder weniger so aufgerufen werden kann: Zeichnen(); Du könntest jetzt z.b. die Methode mit ner größe versehen: void TKreis:Zeichnen(int groesse); dann musst du die Methode so aufrufen: Zeichnen(25); das void am anfang von void TKreis::Zeichnen(void) bedeutet dass die Methode Zeichnen nichts zurückgibt! Hätte auch hier nicht soo viel sinn!

    Wenn du die Objekt vs. Klasse - Sache jetzt etwas verstanden hast erübrigt sich hoffentlich die letzte Frage! Methoden machen hier nur auf Instanzen der Klasse TKreis Sinn (Hätte keinen Sinn die Sandkuchenform zu zeichnen, du willst ja den Sandkuchen haben ...) ...

    Hoffe es ist jetzt etwas klarer, wenn nicht, einfach fragen
     
  3. 16. April 2009
    AW: Borland C++ Builder - Hilfe!

    Ey wie krass ist das denn, ballerst mir so voll den coolen text hin! Ich kann es immer noch nicht glauben, dein brain hätte ich gerne. Hast wohl C++ für Fortgeschrittene in die Wiege gelegt bekommen
    Und dein Beispiel mit dem Sandkuchen, ist so simpel aber so verständlich!
    Ich wünschte mein Lehrer hätte es nur annähernd so drauf wie du!!

    Ich kann es immernoch nicht glauben, du weißt gar nicht wie froh ich bin das ich es endlich einigermaßen verstanden habe!
    Mir fehlen einfach die Worte...aber ich hoffe es ist ersichtlich das da ein großes DANKESCHÖN hervorkommen soll!
    Hast was gut bei mir! (weiß zwar nicht ganz wie man sich auf einem Board einen gefallen erwiedert aber hast was gut bei mir )

    Bw hast du natürlich auch!
     
  4. 16. April 2009
    AW: Borland C++ Builder - Hilfe!

    hehe kein problem naja programmier seit ungefähr 12 jahren .. da bekommt man schon so einiges mit

    wenn du noch fragen hast immer her damit, kannst natürlich auch ne pn schicken!
     
  5. 16. April 2009
    AW: Borland C++ Builder - Hilfe!

    ~closed~
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.