我可以对数组长度使用typedef吗?

时间:2018-12-07 05:15:16

标签: c++ c++11

我有一个要用于表示贝塞尔曲线上广义点的类。现在看起来像这样:

//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中定义了一些冗长的函数,希望将其保留在标头之外。

有没有办法做到这一点?

0 个答案:

没有答案