Merkwürdiger Beispiel Code?
-
Hallo ich bin neu hier und das ist auch mein erster Thread einmal Hallo an alle.
Also folgendes ist mir Passiert, ich lerne da so gemütlich in meinem "Jetzt lerne ich C++" Buch von Markt und Technik und probiere da so ein Beispiel aus um mich mit dem ein wenig vertrauter zu machen. Bekomme ich einen Compiler Fehler.(Ich verwende Dev C++)#include <iostream>
#include <stdlib.h>
using namespace std;
class CRectangle
{
public:
Rectangle(int height,int width);
~Rectangle();
void Drawshape()const;
void Drawshape(int aheight,int awidth)const;
private:
int itsHeight, itsWidth;
};
Rectangle::Rectangle(int height, int width)
itsHeight = height;
itsWidth = width;
{}
~Rectangle::Rectangle()
{}
void Rectangle::Drawshape()const
{itsWidth,itsHeight;}
void Rectangle::Drawshape(int aheight,int awidth)const
{
for (int i = 0; i<itsHeight;i++)
{
cout<<"*";for (int j = 0; j<itsWidth;j++)
{
cout<<"*";
}
}
}int main()
{
CRectangle Rect(5,35);
cout<<"Drawshape()const.\n";
Rect.Drawshape();
cout<<"Drawshape(10,55)\n";
Rect.Drawshape(10,55);
system("PAUSE");
}mfg Kearf
-
welche Fehlermeldung ganz genau. Wenn es nichts compilerspezifisches ist könnte ich vielleicht helfen...
-
Du solltest dich mal für entweder CRectangle oder Rectangle entscheiden...
-
CRectangle::Methodenname eventuell?
-
#include <iostream> #include <stdlib.h> using namespace std; class Rectangle //das C muss weg, damit alles wieder schön einheitlich ist { public: Rectangle(int height,int width); void Drawshape() const; void Drawshape(int aheight,int awidth) const; private: int itsHeight, itsWidth; }; Rectangle::Rectangle(int height, int width) //Klammern falsch gesetzt ! { itsHeight = height; itsWidth = width; } void Rectangle::Drawshape()const {itsWidth,itsHeight;} //<-- Was soll das??? void Rectangle::Drawshape(int aheight,int awidth) const { for (int i = 0; i<itsHeight;i++) { // cout << "*"; gestrichen for (int j = 0; j<itsWidth;j++) { cout << "*"; } cout << "\n"; //Da fehlten die Leerzeichen! } } int main() { CRectangle Rect(5,35); cout<<"Drawshape()const.\n"; Rect.Drawshape(); cout<<"Drawshape(10,55)\n"; Rect.Drawshape(10,55); system("PAUSE"); }
Ausserdem solltest du Drawshape(int aheight,int awidth) aus der Klasse
ausgliedern, da es ja gar nichts mit den den Klassendaten zu tun hat, sondern
nur mit den übergebenen.
-
#include <iostream>
#include <stdlib.h>
using namespace std;
class CRectangle
{
public:
CRectangle(int height,int width);
~CRectangle(){};
void Drawshape()const;
void Drawshape(int aheight,int awidth)const;
private:
int itsHeight, itsWidth;
};
CRectangle::CRectangle(int height, int width)
{
itsHeight = height;
itsWidth = width;
}
void CRectangle::Drawshape()const
{
Drawshape(itsWidth,itsHeight);
}
void CRectangle::Drawshape(int aheight,int awidth)const
{
for (int i = 0; i<itsHeight;i++)
{
cout<<"*";for (int j = 0; j<itsWidth;j++)
{
cout<<"*";
}
}
}int main()
{
CRectangle Rect(5,35);
cout<<"Drawshape()const.\n";
Rect.Drawshape();
cout<<"Drawshape(10,55)\n";
Rect.Drawshape(10,55);
system("PAUSE");
}ähm. ja ok.
Hab zuerst 15 Minuten mir diesen Code angesehen nichts gefunden was falsch war.
(Anscheinend schon zu lang vorm Monitor) Dann hab ich diesen Thread eröffnet weil ich dachte nicht mehr selbst darauf zu kommen. Jetzt hab ich die (newbie)Fehler gefunden, werde in Zukunft ein bißschen besser aufpassen und euch vielen vielen dank für eure Außerordentlich schnellen Hilfe ausrichten.
Danke ich hoffe ich kann euch auch bald helfen.
mfg Kearf