Вопрос вызван проблемой, которая больше не воспроизводится, или опечаткой. Хотя похожие вопросы могут быть уместны на этом сайте, решение для этого вопроса вряд ли поможет будущим посетителям. Обычно можно избежать подобных вопросов написанием и исследованием минимальной программы для воспроизведения проблемы до публикации вопроса.
Закрыт 1 год назад.
Начал изучение основ ООП в с++, не понимаю почему компилятор выдает ошибку "функция-член уже определена или объявлена". Задание заключается в том, чтобы определить расстояние между двумя точками
#include <iostream>
#include <cmath>
using namespace std;
class Point {
private:
double m_a;
double m_b;
public:
Point(double a = 0.0, double b = 0.0)
: m_a(a), m_b(b)
{
}
Point(double a, double b) {
m_a = a;
m_b = b;
}
void print() const {
cout << m_a << " " << m_b << endl;
}
double distanceTo(const Point & other) const {
return sqrt((m_a - other.m_a) * (m_a - other.m_a) + (m_b - other.m_b) * (m_b - other.m_b));
}
};
int main() {
Point first;
Point second(2.0, 5.0);
first.print();
second.print();
cout << "Distance between two points: " << first.distanceTo(second) << endl;
return 0;
}
Чем отличаются эти два конструктора?
Point(double a = 0.0, double b = 0.0)
: m_a(a), m_b(b)
{
}
Point(double a, double b) {
m_a = a;
m_b = b;
}
Они оба имеют сигнатуру Point(double,double) - как компилятору их отличить?...
Сборка персонального компьютера от Artline: умный выбор для современных пользователей