|
JLI Spieleprogrammierung
|
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
|
Verfasst am: 25.05.2004, 14:16 Titel: Vererbung - Großes Problem :( |
|
|
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
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
Thomas |
|
Nach oben |
|
|
Nahar Senior JLI'ler
Alter: 36 Anmeldedatum: 16.07.2003 Beiträge: 267
Medaillen: Keine
|
Verfasst am: 25.05.2004, 14:44 Titel: |
|
|
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 |
|
Nach oben |
|
|
t10ottoo Senior JLI'ler
Alter: 40 Anmeldedatum: 15.04.2004 Beiträge: 210 Wohnort: Berlin Medaillen: Keine
|
Verfasst am: 25.05.2004, 14:56 Titel: |
|
|
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 |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 25.05.2004, 14:57 Titel: |
|
|
Ich sehe in Dreieck.h nirgendwo ein #include "GeometrischeForm.h" |
|
Nach oben |
|
|
PeaceKiller JLI Master
Alter: 35 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 25.05.2004, 14:58 Titel: |
|
|
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 |
|
|
t10ottoo Senior JLI'ler
Alter: 40 Anmeldedatum: 15.04.2004 Beiträge: 210 Wohnort: Berlin Medaillen: Keine
|
Verfasst am: 25.05.2004, 15:05 Titel: |
|
|
Ahh; danke schonmal
Nun hab ich nur noch 6 Fehler *g*
Das Inkludieren der .h Datei stand aber auch net im Buch *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 |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 25.05.2004, 15:10 Titel: |
|
|
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 |
|
|
t10ottoo Senior JLI'ler
Alter: 40 Anmeldedatum: 15.04.2004 Beiträge: 210 Wohnort: Berlin Medaillen: Keine
|
Verfasst am: 25.05.2004, 15:12 Titel: |
|
|
Axooo....danke, nun gehts |
|
Nach oben |
|
|
|
|
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
|