Przerabiam książkę "Szkoła Programowania C++" i zdziwiła mnie jedna rzecz w kodzie. Otóż mamy kod:
class BaseEllipse
{
private:
double x;
double y;
...
public:
BaseEllipse(double x0 = 0, double y0=0) : x(x0), y(y0){}
void Move (int nx, ny) { x=nx; y= ny;}
virtual double Area() const = 0;
...
};
I moje pytanie brzmi: Czy metoda Move jest poprawna? Bo mi się wydawało, że w C++ każdy argument wywołujący funkcję musi mieć określony typ, a do tego w tym przypadku int użyte być nie może.
Czyli w kodzie uważam, że powinno być tak:
void Move (double nx, double ny);
Czy mam rację, czy czegoś nie rozumiem (i jeśli tak to byłbym wdzięczny, gdyby ktoś mi to wytłumaczył :))? Nie miałbym wątpliwości, gdyby to było jednorazowe, ale to się w książce powtarza z 3 razy, a w erracie nie ma mowy o tej stronie.