#include Point.h
Вам нужны кавычки около Point.h
.
Point::Point(int x=2, int y=2)
Аргументы по умолчанию должны быть в объявлении в заголовочном файле, а не в определении в файле .cpp (он будет скомпилирован как есть, но не будет делать то, что вы хотите).
На стилистической ноте обычно плохая идея называть локальные переменные или аргументы такими же, как переменные-члены: это может легко привести к путанице. Вы также можете инициализировать переменные-члены, используя список инициализаторов:
Point::Point(int x_, int y_) : x(x_), y(y_) { }
Поскольку ваш код в данный момент написан, x
и y
оба созданы, затем вы присваиваете им. Использование списка инициализаторов исключает назначение и просто создает их напрямую. Это не имеет значения для фундаментальных типов, таких как int
, но имеет значение для типов классов.
Это не компилируется, и я не уверен, почему.
Обычно полезно сообщение об ошибке, которое выдает компилятор. Если ничего другого, если это не полезно для вас, это полезно для тех из нас, кто пытается помочь.
Кроме того, когда я хочу создать точку в другом месте, скажем main.cpp , что мне нужно #include
вверху, просто Point.h ?
Да.
Как узнать, как выглядит Point.cpp?
Каждый записываемый вами файл .cpp компилируется в отдельный объектный файл. После того, как все файлы .cpp скомпилированы в объектные файлы, все эти объектные файлы объединяются в исполняемый файл (или библиотеку). Компоновщик выясняет, где все определено.