Независимо от того, являются ли члены Point вашего линейного класса указателями или нет, создает совершенно другой тип класса. Использование указателей приведет к классическому подходу в стиле CoGo, который можно рассматривать как точки, похожие на гвозди на доске, а линии - как резиновые полосы, соединяющие эти гвозди. Изменение точки похоже на перемещение гвоздя, все связанные линии работают автоматически, что желательно в некоторых случаях.
Использование буквальных точек означает, что все линии независимы друг от друга, что подходит для других типов приложений.
Это критическое проектное решение для ваших классов на данном этапе.
Редактировать: Как отмечалось в других постах и в комментарии ниже, использование простых указателей для достижения связи между несколькими линиями и точками также представляет серьезную потенциальную проблему. В частности, если точка удалена или перемещена в памяти, все указатели, относящиеся к этой точке, должны быть обновлены. На практике это, как правило, преодолевается путем использования уникальных идентификаторов точек для поиска точки, а не простых указателей. Это также позволяет легко сериализовать / сохранить структуры CoGo. Таким образом, наш класс точек будет иметь статический член для получения точки на основе идентификатора, а наш класс линии будет иметь два идентификатора точек, а не указатели.