JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=192aa0a355813494661e720a154f5c75Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Vererbung - Großes Problem :(

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
t10ottoo
Senior JLI'ler


Alter: 40
Anmeldedatum: 15.04.2004
Beiträge: 210
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 25.05.2004, 14:16    Titel: Vererbung - Großes Problem :( Antworten mit Zitat

Hi,

bin grad bei Kapitel 13 im Buch, wo es um Vererbung geht. Irgendwie komm ich da net ganz klar, der bringt mir 19 Fehler Sad

Da ich nicht weiß, wo ich meinen Ordner hochladen soll, poste ich mal ein wenig Quelltext hier rein, also erstmal von der Basisklasse:
Code:

// GeometrischeForm.h: Schnittstelle für die Klasse GeometrischeForm.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_GEOMETRISCHEFORM_H__B016E009_A19D_468C_BA6C_5D9CEDE17954__INCLUDED_)
#define AFX_GEOMETRISCHEFORM_H__B016E009_A19D_468C_BA6C_5D9CEDE17954__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <windows.h>

class GeometrischeForm 
{
protected:
   int m_x, m_y;

public:
   // Konstruktoren
   GeometrischeForm();
   GeometrischeForm(int x, int y);

   void SetX(int x);
   void SetY(int y);
};

#endif // !defined(AFX_GEOMETRISCHEFORM_H__B016E009_A19D_468C_BA6C_5D9CEDE17954__INCLUDED_)

Nun kommt die *.cpp dazu:
Code:

// GeometrischeForm.cpp: Implementierung der Klasse GeometrischeForm.
//
//////////////////////////////////////////////////////////////////////

#include "GeometrischeForm.h"

//////////////////////////////////////////////////////////////////////
// Konstruktion/Destruktion
//////////////////////////////////////////////////////////////////////

GeometrischeForm::GeometrischeForm(void)
{
   m_x = m_y = 0;
}

GeometrischeForm::GeometrischeForm(int x, int y)
{
   m_x = x;
   m_y = y;
}

void GeometrischeForm::SetX(int x)
{
   m_x = x;
}

void GeometrischeForm::SetY(int y)
{
   m_y = y;
}

Und nun kommt die Klasse, wo der erste Fehler angezeigt wird:
Code:

// Dreieck.h: Schnittstelle für die Klasse Dreieck.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DREIECK_H__420D8472_C5BC_4624_930B_56C32C83617E__INCLUDED_)
#define AFX_DREIECK_H__420D8472_C5BC_4624_930B_56C32C83617E__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <windows.h>

class Dreieck : public GeometrischeForm
{
private:
   int m_Size;

public:
   // Konstruktoren
   Dreieck(void);
   Dreieck(int x, int y, int Size);

   // Methoden zum Setzen der Werte
   void SetSize(int Size);

   // Mit dieser Methode wird das Dreieck gezeichnet
   void Draw(HDC hDC);

};

#endif // !defined(AFX_DREIECK_H__420D8472_C5BC_4624_930B_56C32C83617E__INCLUDED_)

Und auch hierzu noch die *.cpp
Code:

#include "Dreieck.h"

//////////////////////////////////////////////////////////////////////
// Konstruktion/Destruktion
//////////////////////////////////////////////////////////////////////

Dreieck::Dreieck(void)
{
   m_x = 0;
   m_y = 0;
   m_Size = 0;
}

Dreieck::Dreieck(int x, int y, int Size)
{
   m_x = x;
   m_y = y;
   m_Size = Size;
}

void Dreieck::SetX(int x)
{
   m_x = x;
}

void Dreieck::SetY(int y)
{
   m_y = y;
}

void Dreieck::SetSize(int Size)
{
   m_Size = Size;
}

void Dreieck::Draw(HDC hDC)
{
   MoveToEx(hDC, m_x, m_y, 0);
   LineTo(hDC, m_x - m_Size / 2, m_y + m_Size);
   LineTo(hDC, m_x + m_Size / 2, m_y + m_Size);
   LineTo(hDC, m_x, m_y);
}


Hoffentlich ist das nicht zu viel...

Der erste Fehler ist zum Beispiel, dass er meint, dass "GeometrischeForm" keine Basisklasse sei...

Hoffe, ihr findet den Fehler Sad
Thomas
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Nahar
Senior JLI'ler


Alter: 36
Anmeldedatum: 16.07.2003
Beiträge: 267

Medaillen: Keine

BeitragVerfasst am: 25.05.2004, 14:44    Titel: Antworten mit Zitat

Vieleicht könnstest du mal alle Fehlertexte Posten. Länger als der erste Beitrag dürfte es auch nicht sein... Auserdem hab ich mal über hundert Fehler gepostet Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
t10ottoo
Senior JLI'ler


Alter: 40
Anmeldedatum: 15.04.2004
Beiträge: 210
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 25.05.2004, 14:56    Titel: Antworten mit Zitat

Nagut, wie du meinst *gg*
Hier sind sie:

Code:

--------------------Konfiguration: geometrischeObjekte - Win32 Debug--------------------
Kompilierung läuft...
Dreieck.cpp
e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\dreieck.h(15) : error C2504: 'GeometrischeForm' : Basisklasse undefiniert
e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\dreieck.cpp(13) : error C2065: 'm_x' : nichtdeklarierter Bezeichner
e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\dreieck.cpp(14) : error C2065: 'm_y' : nichtdeklarierter Bezeichner
e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\dreieck.cpp(25) : error C2039: 'SetX' : Ist kein Element von 'Dreieck'
        e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\dreieck.h(14) : Siehe Deklaration von 'Dreieck'
e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\dreieck.cpp(30) : error C2039: 'SetY' : Ist kein Element von 'Dreieck'
        e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\dreieck.h(14) : Siehe Deklaration von 'Dreieck'
geometrischeObjekte.cpp
e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\rechteck.h(15) : error C2504: 'GeometrischeForm' : Basisklasse undefiniert
e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\kreis.h(15) : error C2504: 'GeometrischeForm' : Basisklasse undefiniert
e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\dreieck.h(15) : error C2504: 'GeometrischeForm' : Basisklasse undefiniert
e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\geometrischeobjekte.cpp(118) : error C2039: 'SetX' : Ist kein Element von 'Rechteck'
        e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\rechteck.h(14) : Siehe Deklaration von 'Rechteck'
Kreis.cpp
e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\kreis.h(15) : error C2504: 'GeometrischeForm' : Basisklasse undefiniert
e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\kreis.cpp(13) : error C2065: 'm_x' : nichtdeklarierter Bezeichner
e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\kreis.cpp(14) : error C2065: 'm_y' : nichtdeklarierter Bezeichner
e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\kreis.cpp(25) : error C2039: 'SetX' : Ist kein Element von 'Kreis'
        e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\kreis.h(14) : Siehe Deklaration von 'Kreis'
e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\kreis.cpp(30) : error C2039: 'SetY' : Ist kein Element von 'Kreis'
        e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\kreis.h(14) : Siehe Deklaration von 'Kreis'
Rechteck.cpp
e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\rechteck.h(15) : error C2504: 'GeometrischeForm' : Basisklasse undefiniert
e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\rechteck.cpp(13) : error C2065: 'm_x' : nichtdeklarierter Bezeichner
e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\rechteck.cpp(14) : error C2065: 'm_y' : nichtdeklarierter Bezeichner
e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\rechteck.cpp(27) : error C2039: 'SetX' : Ist kein Element von 'Rechteck'
        e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\rechteck.h(14) : Siehe Deklaration von 'Rechteck'
e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\rechteck.cpp(32) : error C2039: 'SetY' : Ist kein Element von 'Rechteck'
        e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\rechteck.h(14) : Siehe Deklaration von 'Rechteck'
Fehler beim Ausführen von cl.exe.

geometrischeObjekte.exe - 19 Fehler, 0 Warnung(en)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 25.05.2004, 14:57    Titel: Antworten mit Zitat

Ich sehe in Dreieck.h nirgendwo ein #include "GeometrischeForm.h"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
PeaceKiller
JLI Master


Alter: 35
Anmeldedatum: 28.11.2002
Beiträge: 970

Medaillen: Keine

BeitragVerfasst am: 25.05.2004, 14:58    Titel: Antworten mit Zitat

Du hast vergessen die geometrische Form zu inkuldieren.
_________________
»If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
t10ottoo
Senior JLI'ler


Alter: 40
Anmeldedatum: 15.04.2004
Beiträge: 210
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 25.05.2004, 15:05    Titel: Antworten mit Zitat

Ahh; danke schonmal Smile
Nun hab ich nur noch 6 Fehler *g*
Das Inkludieren der .h Datei stand aber auch net im Buch Wink *g*

Nun zeigt er mir also folgendes:
Code:
e:\geheime dateien\visualbasic-dateien\c++\c++kurs\spieleprogrammierung mit directx und visualc++\meins\kapitel13\geometrischeobjektemitbasisklasse\dreieck.cpp(26) : error C2509: 'SetX' : Member-Funktion nicht in 'Dreieck' deklariert


Und diese Member-Funktion soller doch aber vonner Basisklasse nehmen, oder? Sonst hat die ganze Vererbung ja keinen Sinn.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 25.05.2004, 15:10    Titel: Antworten mit Zitat

Lass das weg:

Code:

void Dreieck::SetX(int x)
{
   m_x = x;
}

void Dreieck::SetY(int y)
{
   m_y = y;
}



Das wird mitvererbt, brauchst also nciht nochmal definieren.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
t10ottoo
Senior JLI'ler


Alter: 40
Anmeldedatum: 15.04.2004
Beiträge: 210
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 25.05.2004, 15:12    Titel: Antworten mit Zitat

Axooo....danke, nun gehts Very Happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum