Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 10 von 10

Thema: C++ Code

  1. #1
    Registriert seit
    22.08.2009
    Beiträge
    60
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich sitz hier grad und will coden, verrecke aber bereits im Ansatz...

    Der Code:

    abstract class Member {

    private String name;

    String getName(String name) {return this.name;}

    void setName() {this.name = name;}

    abstract void printInfos();

    }

    class Student extends Member {

    void printInfos() {System.out.println(name);}

    }


    Das Problem: Der Compiler sagt, printInfos(); (in der Student class) habe keinen Zugriff auf (private String) name. Aber ich habe der Klasse Student doch die entsprechenden Getter und Setter vererbt?! Demnach müssten die doch auch in der extend-Klasse greifen!?!
    Zitieren Zitieren C++ Code  

  2. #2
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Müsste nicht das Argument "String name" statt bei getName bei setName stehen?
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  3. #3
    Registriert seit
    24.04.2008
    Ort
    Lübeck
    Beiträge
    324
    Danke
    8
    Erhielt 63 Danke für 62 Beiträge

    Standard

    Der String "name" bei dir ist private! Damit ist er auch nur in der Klasse verfügbar, in der er deklariert wurde.

    Wenn du in abgeleiteten Klassen auch auf die Variable zugreifen willst, muss sie protected sein. Damit wird sie auch vererbt.

  4. #4
    Registriert seit
    29.08.2008
    Beiträge
    68
    Danke
    1
    Erhielt 8 Danke für 7 Beiträge

    Standard

    Hallo,

    hoffe das ich mich nicht irre. Aber ich glaube, dies ist kein C++ Code (steht ja im Threadtitle - schaut aus wie Java). Hab das mal in C++ umgesetzt:

    #include "stdafx.h"
    #include <iostream>
    using namespace std;

    class Member
    {
    public:
    char *Name;
    Member(char *m_name) { Name = m_name;};
    char* GetName() { return Name;};
    virtual void printInfos() {cerr << "Error. Name not available for base type." << endl; };
    };

    class Student : public Member
    {
    public:
    Student(char* c) : Member(c) {}
    void printInfos() { cout << "Name des Studenten: " << GetName(); };
    };


    int _tmain(int argc, _TCHAR* argv[])
    {
    Student student("Holger");
    student.printInfos();
    return 0;
    }

    Viel Spass

  5. #5
    rabit ist offline Benutzer
    Themenstarter
    Registriert seit
    22.08.2009
    Beiträge
    60
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hast dir echt Mühe gemacht Danke!
    Ich teste das mal.

  6. #6
    Registriert seit
    09.11.2007
    Ort
    Rhein Main (Darmstadt)
    Beiträge
    663
    Danke
    61
    Erhielt 112 Danke für 80 Beiträge

    Daumen runter

    Also C++ ist das nicht, ich vermute mal stark, dass das C# sein soll!

    Ansonsten geht das so nicht, erst ein Buch lesen, dann trainieren.

    Man sollte schon das Konzept von private, protected und public verstehen.

    Man sollte auch interface, virtual, abstract und override sowie extend verstehen, bevor man sich an die Implementierung macht.

    Wenn das Wissen hierzu nicht vorhanden ist, Zug um Zug dazulernen und erst einmal mit den einfachen Konstrukten anfangen. Und nicht verzagen, alle haben mal klein angefangen.

    Es gibt sehr gute Fachbücher und die sind allemal ihr Geld wert.
    Als Freelancer immer auf der Suche nach interessanten Projekten.
    Zitieren Zitieren C#  

  7. #7
    Registriert seit
    29.08.2008
    Beiträge
    68
    Danke
    1
    Erhielt 8 Danke für 7 Beiträge

    Standard

    Hallo,

    wie kommst du auf C# ??

    Kennt C# das Schlüsselwort "extends" oder vielleicht "System.out.println" ?

    Ich glaube nicht. "System.out.println" ist in C# "Console.Writeline". Und statt dem "extends" wird ein ":" gesetzt, um hier die Herkunft einer abstrakten Klasse darzustellen.


    Viel Spass

    Georg

  8. #8
    Registriert seit
    17.08.2009
    Ort
    BaWü
    Beiträge
    8
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Befehle wie "extends" oder "System.out.println" haben weder mit C, C++ oder C# etwas zu tun.
    Diese Befehle gibt es in Java.
    „Seit Jahren bin ich nun mit der Beobachtung vertraut, dass die Qualität von Programmierern eine abnehmende Funktion der Dichte von GOTO Anweisungen in ihren Programmen ist.“
    Edsger W. Dijkstra

  9. #9
    rabit ist offline Benutzer
    Themenstarter
    Registriert seit
    22.08.2009
    Beiträge
    60
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ja danke Prob ist bereits gelöst!
    Ist Java richtig.

  10. #10
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von rabit Beitrag anzeigen
    Ja danke Prob ist bereits gelöst!
    Und wie?
    Interessiert vielleicht noch mehr.
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

Ähnliche Themen

  1. SCL code
    Von awl-scl im Forum Simatic
    Antworten: 21
    Letzter Beitrag: 14.01.2008, 17:02
  2. Test von SCL-Code
    Von broesel im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 14.05.2007, 10:56
  3. Code erklären
    Von ottopaul im Forum HMI
    Antworten: 1
    Letzter Beitrag: 04.04.2007, 15:28
  4. AWL-code
    Von Anonymous im Forum Simatic
    Antworten: 29
    Letzter Beitrag: 09.11.2005, 16:48
  5. SMD Code Tabelle
    Von Josef Scholz im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 23.06.2003, 20:53

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •