tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
372
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    fbfeix fbfeix ist offline Mitglied Gold
    Registriert seit
    Jul 2011
    Beiträge
    117
    Hallo Leute

    ich hab mir in Eclipse folgende Klasse erstellt:

    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    //filename: Properties.h
     
    #ifndef PROPERTIES_H_
    #define PROPERTIES_H_
     
    #include "ByteBlock.h"
     
    template<class T, class Tval>
    class Property {
    public:
        Property(const ByteBlock * byteBlock, const char * Name);
        Property(const ByteBlock * byteBlock, const char * Name, T value);
        ~Property();
        const char *getName() const;
        Tval getValue() const;
        void setValue(Tval Value);
     
    private:
        const char * Name; // verweist auf ein ByteBlockElement->Elements-Item
        //const char * CssPattern;
        Tval Value;
    };
     
     
     
     
     
     
     
     
    #endif

    daraus hat mir dann Eclipse diese Datei gezaubert.


    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    
    //filename: Properties.cpp
     
    #include "Properties.h"
     
     
    template<class T, class Tval> inline Property(const ByteBlock *byteBlock, const char *Name)
    {
    }
     
    template<class T, class Tval> inline Property(const ByteBlock *byteBlock, const char *Name, T value)
    {
    }
     
    inline Property::~Property()
    {
        delete this->Name;
        delete this->Value;
        delete this;
    }
     
     
     
    const char inline *Property::getName() const
    {
        return Name;
    }
     
     
    template<class T, class Tval> Tval Property<T,Tval>::getValue() const
    {
        return Value;
    }
     
     
     
     
     
    template<class T, class Tval> void Property<T,Tval>::setValue(Tval Value)
    {
        this->Value = Value;
    }


    Leider meckert er mir aber bei den ersten beiden Funktionen (Syntax Error):

    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    
    template<class T, class Tval> inline Property(const ByteBlock *byteBlock, const char *Name)
    {
    }
     
    template<class T, class Tval> inline Property(const ByteBlock *byteBlock, const char *Name, T value)
    {
    }

    Was ich auch nicht ganz verstehe: Muss man den die Funktionen nicht auf die Klasse verweisen (was ist da der richtige Fachausdruck?)?
    Also dass ich dann praktisch "Property::Property(...)" schreibe anstatt nur "Property(...)" so wie er es mir auch in der getName()-Funktion gemacht hat.

    Noch eine Frage hinterher:
    Kann man in einer Klasse, die von einer anderen Erbt die Eigenschaften umbennen?
    Bsp: In der Elternklasse gibts die Eigenschaft:
    Code cpp:
    1
    
    string Eigenschaft;
    dass ich die in der Kindklasse zu der mache:
    Code cpp:
    1
    
    string Farbe;
    Geändert von fbfeix (06.12.11 um 15:03 Uhr) Grund: weitere Frage
     

  2. #2
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Was hat Eclipse da gemacht?
    Du hast recht, man muss die Klasse mit angeben.

    Zur zweiten Frage: Nein, geht nicht.
    Pointer/Referenzen könnte man verwenden, dann gibts die Eigenschaft eben doppelt.
    Mit neuem und altem Namen.

    Gruß
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  3. #3
    fbfeix fbfeix ist offline Mitglied Gold
    Registriert seit
    Jul 2011
    Beiträge
    117
    Im Outline Fenster -> Source -> Implement Method, dann die Funktionen auswählen ergibt den oben geposteten Code.

    Mit Klassenangabe gibt er mir
    Member Declaration not found.
    aus.



    Oke hab den fehler gefunden. So müsste es heißen:
    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    
    template<class T, class Tval> inline Property<T,Tval>::Property(const ByteBlock *byteBlock, const char *Name)
    {
    }
     
    template<class T, class Tval> inline Property<T,Tval>::Property(const ByteBlock *byteBlock, const char *Name, T value)
    {
    }
    Geändert von fbfeix (06.12.11 um 15:41 Uhr) Grund: Ergebnis, Fehler gefunden
     

Ähnliche Themen

  1. MSSQL 2008 SQL SERVER MANAGEMENT STUDIO falsche Syntax bei RESTORE
    Von bejay im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 20.09.10, 16:49
  2. MS-SQL Falsche Syntax
    Von liquidbeats im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 30.03.10, 13:12
  3. Antworten: 0
    Letzter Beitrag: 19.01.08, 15:21
  4. sql von jet(access)-Syntax zu mySQL-Syntax
    Von julegner im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 04.10.06, 12:28
  5. Mysql + C# mysql-string falsche Syntax ?
    Von Deletemaster im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 04.02.05, 21:59

Stichworte