#6 delicacyy
Mě se dobře učilo z knihy Mistrovství v C++
http://knihy.cpress.cz/mistrovstvi-v-c.html
Měl, resp. mám i C++ za 21 dní, ale to mi nepřišlo tak dobé jako ta první zmiňovaná
#6 delicacyy
Mě se dobře učilo z knihy Mistrovství v C++
http://knihy.cpress.cz/mistrovstvi-v-c.html
Měl, resp. mám i C++ za 21 dní, ale to mi nepřišlo tak dobé jako ta první zmiňovaná
#3 delicacyy
No, máš tam pár blbostí
- konstruktor má 4 parametry, to je OK, ale na začátku definuješ 4 hodnoty int které neinicializuješ (májí náhodné hodnoty) a ty pak přiřazuješ proměnným - není splněna podmínka ze zadání "Při definici proměnné kružnice mám předat do konstruktoru vhodné hodnoty"
- Pracuješ vždy s tím jedním objektem, proto metodě readValues nemusíš předávat parametr na jiný objekt, viz. "void readValues(Circle circ)"
- Metoda readValues patří třídě Circle, proto při definici metody musíš použít tvat "void Circle::readValues() {...}
- V té metodě readValues se mají jen zadat hodnoty, resp. zadat hodnoty, proto nevím, proč se je tam snažís v cout vypisovat. Navíc jak řekl vitamin, mají návratový typ void, proto ani nemají co vypisovat
Upravený kód:
circle.h
#include <iostream>
#ifndef _CIRCLE_H_
#define _CIRCLE_H_
using namespace std;
class Circle
{
public:
Circle(int ax, int ay, int r, int c);
void setCentre(int ax, int ay);
void setRadius(int r);
void setColor(int c);
void printValues() const;
void draw();
void readValues();
void readCentre()
{
int x, y;
cout<<"Zadejte souradnice stredu: ";
cin>>x>>y;
this->setCentre(x,y);
}
void readRadius()
{
int r;
cout<<"Zadejte polomer: ";
cin>>r;
this->setRadius(r);
}
void readColor()
{
int c;
cout<<"Zadejte barvu: ";
cin>>c;
setColor(c);
}
private:
int x, y;
int radius;
int color;
};
#endif
--------------------------------------------
circle.cpp
#include <iostream>
#include "circle.h"
#include <g2.h>
#include <g2_X11.h>
using namespace std;
Circle::Circle(int ax, int ay, int r, int c)
{
x=ax;
y=ay;
radius=r;
color=r;
}
void Circle::setCentre(int ax, int ay)
{
x=ax;
y=ay;
}
void Circle::setRadius(int r)
{
radius=r;
}
void Circle::setColor(int c)
{
color=c;
}
void Circle::printValues() const
{
cout<<"Souradnice: "<<x<<", "<<y<<endl;
cout<<"Polomer: "<<radius<<endl;
cout<<"Barva: "<<color<<endl;
}
void Circle::draw()
{
int dev = 0;
dev = g2_open_X11(600, 600); // Otevreni okna
g2_set_line_width(dev, 5); // Tloustka cary bude 5 pixelu
g2_pen(dev, color);
g2_circle(dev, x, y, radius);
}
void Circle::readValues()
{
readCentre();
readRadius();
readColor();
}
---------------------------------------------
main.cpp
#include <iostream>
#include "circle.h"
using namespace std;
int main()
{
Circle circ(5, 4, 7, 1);
circ.readValues();
circ.printValues();
circ.draw();
cin.get();
cin.get();
return 0;
}
Vidím, že ti nejsou moc jasné základy OOP.....chce to nějaký dobrý studijní materiál....velmi dobré je Mistrovství v C++. Pokud to myslíš s programováním vážně, asi by se vyplatilo investovat do kvalitní literatury
#1 delicacyy
main.cpp
#include <iostream>
#include "circle.h"
using namespace std;
int main()
{
Circle circ;
int x, y, r, c;
cout<<"Zadejte souradnice stredu: ";
cin>>x>>y;
circ.setCentre(x,y);
cout<<"Zadejte polomer: ";
cin>>r;
circ.setRadius(r);
cout<<"Zadejte barvu: ";
cin>>c;
circ.setRadius(c);
circ.printValues();
circ.draw();
return 0;
}
circle.h
#ifndef _CIRCLE_H_
#define _CIRCLE_H_
class Circle
{
public: // Verejne cleny tridy
Circle();
void setCentre(int ax, int ay);
void setRadius(int r);
void setColor(int c);
void printValues() const;
void draw();
private: // Soukrome cleny tridy
int x, y;
int radius;
int color;
// void printValues();
};
#endif
circle.cpp
#include <iostream>
#include "circle.h"
#include <g2.h>
#include <g2_X11.h>
using namespace std;
Circle::Circle()
{
x=1;
y=1;
radius=1;
color=1;
}
void Circle::setCentre(int ax, int ay)
{
x=ax;
y=ay;
}
void Circle::setRadius(int r)
{
radius=r;
}
void Circle::setColor(int c)
{
color=c;
}
void Circle::printValues() const
{
cout<<"Souradnice: "<<x<<", "<<y<<endl;
cout<<"Polomer: "<<radius<<endl;
cout<<"Barva: "<<color<<endl;
}
void Circle::draw()
{
int dev = 0;
dev = g2_open_X11(400, 300); // Otevreni okna
g2_set_line_width(dev, 5); // Tloustka cary bude 5 pixelu
g2_pen(dev, color);
g2_circle(dev, x, y, radius);
}
Napriklad takto.....jeste se to da upravit, napr. osetreni vstupu atd. Je to jen hruby nastrel