Я пытаюсь сделать довольно простую программу, но получаю очень противоречивые результаты. В частности, сеттер, похоже, не устанавливает значения, хотя, когда я возиться с переменными аргумента способами, которые не должны изменять вывод, я иногда получаю рабочие результаты.
Вот мой код:
point.cpp
public:
point()
{
x = 0;
y = 0;
}
point(double x, double y)
{
x = x;
y = y;
}
void set_x(double x)
{
x = x;
}
void set_y(double y)
{
y = y;
}
double get_x() const
{
return x;
}
double get_y() const
{
return y;
}
private:
double x;
double y;
};
Главная
point pointA;
double x,y;
cout << "Enter x value for point A: " << endl;
cin >> x;
pointA.set_x(x);
cout << "Enter y value for point A: " << endl;
cin >> y;
pointA.set_y(y);
point pointB(x,y);
cout << "X value for point A is: " << pointA.get_x() << endl;
cout << "Y value for point A is: " << pointA.get_y() << endl;
cout << "X value for point B is: " << pointB.get_x() << endl;
cout << "Y value for point B is: " << pointB.get_y() << endl;
Выход:
X value for point A is: 10
Y value for point A is: 10
X value for point B is: 3.18463e-314
Y value for point B is: 2.12199e-314
Я действительно запутался во всем этом, поскольку по сути те же функции работают в других аналогичных базовых программах. Если бы кто-нибудь мог указать на очевидную ошибку, которую я совершаю, я был бы очень признателен.