Zdravím,
pokročila jsem v chápání konstruktorů bez parametrů i s nimi, ale narazila jsem na problém, kdy nevím, jak metodou volat metodu. Abych to objasnila, měla jsem program modifikovat tak, aby konstruktor přijímal čtyři parametry
(což se povedlo, jede to). Při definici proměnné kružnice mám předat do konstruktoru vhodné hodnoty. (což si myslím, že je též ok) Dále mám implementovat ve třídě Circle metody readCentre(),readRadius() a readColor(), které od uživatele vyžádají příslušné hodnoty. Dále implementujte metodu readValues(), která postupně zavolá tři výše zmíněné metody. Tuto metodu mám použít v programu pro načtení dat od uživatele.
#include <iostream>
#include <g2.h>
#include <g2_X11.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();
private:
int x, y;
int radius;
int color;
};
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);
}
int main()
{
int x, y, r, c;
Circle circ(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.setColor(c);
circ.printValues();
circ.draw();
cin.get();
cin.get();
return 0;
}
Zkoušela jsem zpatlat to, že by metoda readValues() zavolala ty ostatní read metody a pak předala hodnoty v main funkci dál, ale jsem ztracená v tom, jak ten zápis má vypadat.. přemýšlela jsem i nad dalším konstruktorem, ale přijde mi to jako blbost.. za jakoukoli radu budu moc ráda..