这可能是一个非常简单的问题,但我不确定要搜索什么来寻找解决方案。我有三个课程,如下所示:
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
,即使它基本上为每个类做同样的事情。我正在研究使用模板,但我找不到我想要的东西。
答案 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));
}
}