У меня есть класс, который я хочу использовать для представления обобщенной точки на кривой Безье.Прямо сейчас это выглядит так:
//BezierCurvePoint.h
class BezierCurvePoint
{
int _pointDepth;
double* _pointData;
int _layerDepth;
double* _layerData;
public:
BezierCurvePoint(int pointDepth, int layerDepth = 0);
//Lots of operator methods to make math easier
}
//BezierCurvePoint.cpp
BezierCurvePoint::BezierCurvePoint(int pointDepth, int layerDepth) :
_pointDepth(pointDepth),
_layerDepth(layerDepth)
{
_pointData = pointDepth ? new double[pointDepth] : nullptr;
_layerData = layerDepth ? new double[layerDepth] : nullptr;
}
_pointData представляет координаты для точки, а _layerData - это некоторая дополнительная информация, которую я хочу сохранить для каждой точки, например, ширина линии и наклон.К сожалению, я также создаю и удаляю множество крошечных массивов.
Я бы хотел иметь возможность создавать вариации для этого типа точек.Поэтому у меня будет одна версия с pointDepth = 2 и layerDepth = 1, а другая - с pointDepth = 3 и layerDepth = 2. У меня есть несколько универсальных методов, которые будут работать, пока они знают глубины различных массивов
Когда я использую мои точки в одной кривой, все они будут иметь одинаковые pointDepth и layerDepth, было бы полезно, если бы я мог определить typedef (или некоторое другое уточнение) этого более общего случая, чтобы я 'используя массивы фиксированной длины вместо их выделения.Это также облегчило бы отладку.
Я не хочу использовать шаблоны, поскольку у меня есть некоторые длинные функции, определенные в .cpp, которые я предпочел бы не использовать в заголовке.
Есть ли способ сделать это?