Tôi muốn viết mẫu vectơ toán học. Tôi có một lớp chấp nhận kiểu và kích cỡ làm đối số mẫu, với rất nhiều phương thức toán học. Bây giờ tôi muốn viết các chuyên ngành trong đó ví dụ như Vector < 3> có x, y, z là các thành viên tham chiếu đến dữ liệu [0..3] tương ứng.C++ - Sử dụng mẫu mặc định làm cơ sở cho chuyên môn
Vấn đề là tôi không biết cách tạo chuyên môn kế thừa mọi thứ từ mẫu mặc định mà không cần tạo lớp cơ sở hoặc viết mọi thứ hai lần.
Cách hiệu quả nhất để thực hiện việc này là gì?
template<class Type, size_t Size>
class Vector {
// stuff
};
template<class T>
class Vector<3,T>: public Vector {
public:
T &x, &y, &z;
Vector(): Vector<>(), x(data[0]), y(data[1]), z(data[2]){}
// and so on
};
Tạo lớp cơ sở là cách tiếp cận điển hình ở đó. –