Выводится мусор в функции
Есть перегруженный переменными double конструктор CCoord, также есть функция f_Print(), которая служит для вывода в терминал в функции main. Проблема: выводится мусор.
class CCoord {
public:
double x, y, h, x2, y2, h2;
public:
CCoord(double x, double y, double h, double x2, double y2, double h2){ // Конструктор задает 2 пеленгатора
x = x;
y = y;
h = h;
x2 = x2;
y2 = y2;
h2 = h2;
}
void f_Print() {
cout << "x: " << x << endl;
cout << "y: " << y << endl;
cout << "h: " << h << endl;
cout << "x2: " << x2 << endl;
cout << "y2: " << y2 << endl;
cout << "h2: " << h2 << endl;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Этот фокус — с одинаковыми именами — работает при инициализации, т.е.
CCoord(double x, double y, double h, double x2, double y2, double h2)
{
x = x;
y = y;
h = h;
x2 = x2;
y2 = y2;
h2 = h2;
}
полная ерунда (присвоение аргументов самим себе), а
CCoord(double x, double y, double h, double x2, double y2, double h2)
:x(x), y(y), h(h), x2(x2), y2(y2), h2(h2) {}
вполне корректный вызов, где члены класса инициализируются переданными в конструктор параметрами.