OOP: Klasse will nicht

Hallo zusammen.

Ich habe bei einer Programmieraufgabe ein Problem. Eines, das irgendwie frustriert. Ich habe etliche Klassen erstellt, immer nach dem gleichen Schema. Aber die jetzige will plötzlich nicht funktioniert. Ich habe alles 10 mal überprüfgt, ob irgendein Buchstabendreher drin ist, … habe etliche male mit den anderen Klassen verglichen… ich finde den Fehler nicht. … In meiner Verzweiflung muss ich mich an jemanden wenden hehe. Ich hoffe es ist nicht zu ersichtlich, das wäre ziemlich ärgerlich.

Also…

Rectangle.h

#pragma once
#include "body.h"
class Rectangle 
{
public:

 Rectangle(void);
 Rectangle(float w, float l);
 ~Rectangle(void);

 virtual float areaRectangle();

private:
 float m\_w;
 float m\_l;
};

Rectangle.cpp

#include "Rectangle.h"
#define \_USE\_MATH\_DEFINES
#include 

Rectangle::Rectangle(void)
{
}

Rectangle::Rectangle(float w,float l)
{
 this-\>m\_w=w;
 this-\>m\_l=l;
}

Rectangle::~Rectangle(void)
{
}



float Rectangle::areaRectangle()
{
 return m\_l\*m\_w;
}

und schließlich die Verwendung in der main.cpp

#include "Rectangle.h"

...

Rectangle Recclass(b,h);

Ich wollte dann schließlich Recclass.areaRectangle() aufrufen, allerdings bietet er mir das gar nicht an. Bereits beim erstellen von Recclass meckert er, was denke ich bedeutet das er Rectangle irgendwie nicht finden kann.

Ich danke schonmal für die Hilfe.

Ich wollte dann schließlich Recclass.areaRectangle() aufrufen,
allerdings bietet er mir das gar nicht an. Bereits beim
erstellen von Recclass meckert er, was denke ich bedeutet das
er Rectangle irgendwie nicht finden kann.

Was ist denn der Compilerfehler? „bietet er mir das gar nicht an“ (ich nehme an, du meinst die Symbolergänzung deiner Entwicklungsumgebung) ist nicht sehr hilfreich und kann übrigens auch bei funktionierendem Code passieren. Ich hoffe, du hast wenigstens trotzdem versucht, deinen Code zu übersetzen :smile:.

Grüße,
Sebastian

Jupp, die Ergänzung mein ich.

Und ausprobiert habe ich es natürlich auch. Die Fehlermeldungen sind folgende:

error C2146: Syntaxfehler: Fehlendes ‚;‘ vor Bezeichner ‚Recclass‘
error C3861: „Recclass“: Bezeichner wurde nicht gefunden

ALso betrifft es genau die Zeile, in der ich Recclass eigentlich erstellen möchte.

Hi,

also im wesentlich sind Rectangle.h und Rectangle.cpp
ok. Zeig uns mal body.h, denn vermutlich ist dort am
Ende der Fehler zu suchen.

Gruss
norsemanna

Hallo Fragewurm,

error C2146: Syntaxfehler: Fehlendes ‚;‘ vor Bezeichner
‚Recclass‘
error C3861: „Recclass“: Bezeichner wurde nicht gefunden

ALso betrifft es genau die Zeile, in der ich Recclass
eigentlich erstellen möchte.

b und h in main.cpp sind float ?

MfG Peter(TOO)

Jupp, beide.

Kann es irgendwie sein, dass es eine Begrenzung von Klassen gibt? Das man nur eine bestimmte Anzahl haben darf? Ich habe ca. 8, wobei ich das ziemlich seltsam finden würde wenn es daran liegen würde.

Hallo

Ich habe bei einer Programmieraufgabe ein Problem.

und schließlich die Verwendung in der main.cpp

#include „Rectangle.h“

Rectangle Recclass(b,h);

Obiges ist kein reguläres C++. Das kann
nicht kompilieren.

Grüße

CMБ

Hi CM5,

#include „Rectangle.h“

Rectangle Recclass(b,h);

Obiges ist kein reguläres C++. Das kann
nicht kompilieren.

Weshalb denn solches? Natürlich ist das reguläres C++. Die „…“ stehen ja nicht im Quellcode sondern deuten hier nur an, dass z.B. weitere Headerfiles inkludiert werden.

Gruss
norsemanna

Hallo norsemanna

#include „Rectangle.h“

Rectangle Recclass(b,h);

Obiges ist kein reguläres C++. Das kann
nicht kompilieren.

Weshalb denn solches? Natürlich ist das reguläres C++.
Die „…“ stehen ja nicht im Quellcode sondern deuten
hier nur an, dass z.B. weitere Headerfiles inkludiert
werden.

Aha? Und Du glaubst, daß der Fehler, über den
er nicht hinwegkommt, *irgendwo anders* als an
der Stelle dieser „…“ stehen könnte :wink:

Grüße

CMБ

Hi,

Aha? Und Du glaubst, daß der Fehler, über den
er nicht hinwegkommt, *irgendwo anders* als an
der Stelle dieser „…“ stehen könnte :wink:

ich habe dich nur darauf hingewiesen, dass die „…“ nicht im Plaintext stehen können, denn sie würden einen Syntax Fehler bereits bei dem zweiten Punkt auslösen …

Der Fehler ist im letzten inkludierten Headerfile in der letzten relevanten Zeile. Dort fehlt mit ebenso grosser Wahrscheinlichkeit ein „;“ als Abschluss der Klassenvereinbarung.
Leider will der Originalposter uns diese Datei nicht zur Überprüfung zur Verfügung stellen.

Gruss
norsemanna