我有两个类来定义一些操作并记录矩阵行和列。一个用于主机,另一个用于设备。
struct device_matrix {
device_vector<double> data;
int row;
int col;
// constructors
device_matrix() ...
// some matrix operations
add()...
}
struct host_matrix {
host_vector<double> data;
int row;
int col;
// constructors
host_matrix() ...
// some matrix operations
add()...
}
基类应如下所示:
template<typename T>
struct base_matrix {
T data;
int row;
int col;
// no constructors
// some matrix operations
add()...
}
但除了数据类型和构造函数外,其他人员都是一样的。我要实现三个目标,一个是将类型 T 专门化为 device_vector 或 host_vector,另一个是为这两个结构编写不同的构造函数,并继承操作方法。我怎么能同时做到这一点?
谢谢!