不同的c ++类,其中成员仅按类型不同

时间:2014-05-26 19:48:44

标签: c++ inheritance polymorphism

这可能是一个非常简单的问题,但我不确定要搜索什么来寻找解决方案。我有三个课程,如下所示:

class class_double_array {
public:
    double *value;
    int height;
    int width;

    void alloc(const int &h, const int &w);
}


class class_int_array {
public:
    int *value;
    int height;
    int width;

    void alloc(const int &h, const int &w);
}


class class_logical_array {
public:
    bool *value;
    int height;
    int width;

    void alloc(const int &h, const int &w);
}

其中alloc将是:

void class_double_array::alloc(const int &h, const int &w) {
    width = w;
    height = h;
    value = (double*)calloc(h*w,sizeof(double));
}

是否有一种在c ++中组织这些类的标准方法?这是一个非常简单的例子,但我有类似的东西,类方法基本相同,但取决于value的类型。在这个例子中,我必须为每个类重写alloc,即使它基本上为每个类做同样的事情。我正在研究使用模板,但我找不到我想要的东西。

1 个答案:

答案 0 :(得分:2)

像这样:

template<typename T>
class T_array
{
public:
    T *value;
    int width;
    int height;

    void alloc(const int &h, const int &w)
    {
        width = w;
        height = h;
        value = (T*)calloc(h*w, sizeof(T));
    }
}